Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Druxa от Сентябрь 04, 2007, 11:35



Название: QSqlTableModel и QTableView
Отправлено: Druxa от Сентябрь 04, 2007, 11:35
QSqlTableModel и QTableView. Как получить связь между положением курсора в QTableView и моделью данных. QSqlTableModel. Или как удалить из этой связки элемент?


Название: Re: QSqlTableModel и QTableView
Отправлено: Alexandr Az от Сентябрь 04, 2007, 11:48
Цитировать
Как получить связь между положением курсора в QTableView и моделью данных?

Никак..... Потому что они не связаны...
Это не так уж и плохо, как может показаться на первый взгляд. Короче не получится у тебя сделать переход на следующию запись в модели и чтобы курсор во вью переместился тоже. Чай не TDataSet. Но! Мы можем связать все view воедино и перемещение в одной отображается на другой. Другими словами хочеш бегать по вьюхе - забудь что существует модель.........

Цитировать
Или как удалить из этой связки элемент?

Это что, взаимоисключающие понятия?

Собственно ответ как и в первом случае. Никак.
Прийдется обновить модель - другими словами - жопа!


Название: Re: QSqlTableModel и QTableView
Отправлено: Druxa от Сентябрь 04, 2007, 11:55
А можно по подробнее? Мне нужно что бы пользователь нажимал кнопку Удалить и у него удалялась строка в таблице(в виде и модели). Если не затруднит приведите пример. Можно же менять данные отдельных ячеек. Почему нет метода удаления строки?


Название: Re: QSqlTableModel и QTableView
Отправлено: denka от Сентябрь 04, 2007, 12:30
Пишеш оброботчик для своей кнопки удалить а в нем:
Код:
...
model.removeRows( номер_удаляемой_строки, 1 )
...
Номер удаляемой строки у тя может быть например текущий выбраный элемент таблицы:
Код:
номер_удаляемой_строки = view.currentIndex().row();


Название: Re: QSqlTableModel и QTableView
Отправлено: Alexandr Az от Сентябрь 04, 2007, 12:45
А можно по подробнее?

Ты бы хоть версию куте указал. В 4.3 более менее нормально стало...

model.removeRow(номер строки);
Обрати внимание на editStrutegy, имхо при мануле глючит.....


Название: Re: QSqlTableModel и QTableView
Отправлено: Druxa от Сентябрь 05, 2007, 12:10
Спасибо, то чно нужно.


Название: Re: QSqlTableModel и QTableView
Отправлено: Flakes от Август 18, 2008, 17:12
не совсем понял ответ от Alexandr Az. Никак не сопоставить положение курсора QTableView и записи в БД? Более точно, как мне добраться до например ID текущей выбранной строки, ID спрятан через model->removeColumn(0);

UPD: что то через QSqlTableModel::data() проглядывается  :)


Название: Re: QSqlTableModel и QTableView
Отправлено: ритт от Август 18, 2008, 19:49
не плохо ты "прячешь" столбцы...удалением

int ID = model->data(model->index(row, 0), Qt::EditRole).toInt();


Название: Re: QSqlTableModel и QTableView
Отправлено: Flakes от Август 18, 2008, 22:17
не плохо ты "прячешь" столбцы...удалением

int ID = model->data(model->index(row, 0), Qt::EditRole).toInt();

ага, я понял, что лучше их прятать в tableView, а не удалять в модели ::) вообщем разобрался, через data() все и сделал