Интерактивная QSqlTableModel - PullRequest
1 голос
/ 13 апреля 2011

Пожалуйста, не могли бы вы дать мне совет. Я использую класс QSqlTableModel для доступа к таблице базы данных и QTableView для просмотра. Какой сигнал какого экземпляра мне нужно обработать, чтобы узнать о перемещении курсора в QTableView?

Я хочу обновить содержимое TableView B после перемещения курсора в QTableView A (в таблице B есть внешние ключи для таблицы A в базе данных)

Может быть несколько из этого http://doc.trolltech.com/latest/qabstractitemmodel.html?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 13 апреля 2011

Другой способ - использование модели выбора

Использование модели выбора

Стандартные классы представления предоставляют модели выбора по умолчаниюможет использоваться в большинстве приложений.Модель выбора, принадлежащую одному виду, может быть получена с использованием функции selectionModel() вида и распределена между многими видами с помощью setSelectionModel(), поэтому создание новых моделей выбора обычно не требуется.

у вас есть модель общего доступа , представления будут обновляться независимо от того, какая из них будет изменена.Вы можете реагировать на это. флажки выбора определяют, хотите ли вы ячейку, строку или несколько вариантов выбора.

См. Также работа с выборками :

//selection changes shall trigger a slot
     QItemSelectionModel *selectionModel= treeView->selectionModel();
     connect(selectionModel, SIGNAL(selectionChanged (const QItemSelection &, const QItemSelection &)),
             this, SLOT(selectionChangedSlot(const QItemSelection &, const QItemSelection &)));
 }
2 голосов
/ 13 апреля 2011

Иван, если вы говорите о курсоре таблицы, вы можете переопределить метод QAbstractItemView :: moveCursor , который является виртуальным.

Если вы говорите о курсоре мыши, вы можете использовать метод QAbstractItemView :: viewportEvent для обнаружения события перемещения мыши. Вам необходимо установить QWidget :: setMouseTracking (true) в область просмотра вашего QTableView.

Надеюсь, что поможет

...