请你给我一个建议。我正在使用 QSqlTableModel 类来访问数据库表和 QTableView 来查看它。我应该处理什么实例的什么信号才能知道用户在 QTableView 中移动光标?
我想在光标移动到 QTableView A 之后更新 TableView B 的内容(表 B 有数据库中表 A 的外键)
可能有点来自这个http://doc.trolltech.com/latest/qabstractitemmodel.html?
谢谢。
请你给我一个建议。我正在使用 QSqlTableModel 类来访问数据库表和 QTableView 来查看它。我应该处理什么实例的什么信号才能知道用户在 QTableView 中移动光标?
我想在光标移动到 QTableView A 之后更新 TableView B 的内容(表 B 有数据库中表 A 的外键)
可能有点来自这个http://doc.trolltech.com/latest/qabstractitemmodel.html?
谢谢。
伊万,如果你在谈论表格光标,你可以重新实现虚拟的QAbstractItemView::moveCursor方法。
如果你在谈论鼠标光标,你可以使用QAbstractItemView::viewportEvent方法来检测鼠标移动事件。您需要将 QWidget::setMouseTracking(true) 设置为 QTableView 的视口。
希望有帮助
另一种方法是使用选择模型
使用选择模型
标准视图类提供可在大多数应用程序中使用的默认选择模型。使用视图的函数可以获得属于一个视图的选择模型
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 &)));
}