请你给我一个建议。我使用QSqlTableModel类来访问数据库表,使用QTableView来查看它。我应该处理什么实例来了解用户在QTableView中移动光标的信号?
我想在QTableView A中移动光标后更新TableView B的内容(表B在数据库中有表A的外键)
可能有点来自http://doc.trolltech.com/latest/qabstractitemmodel.html?
感谢。
答案 0 :(得分:2)
Ivan,如果你在谈论表光标,你可以重新实现虚拟的QAbstractItemView::moveCursor方法。
如果您正在谈论鼠标光标,可以使用QAbstractItemView::viewportEvent方法来检测鼠标移动事件。您需要将QWidget :: setMouseTracking(true)设置为QTableView的视口。
希望有所帮助
答案 1 :(得分:2)
另一种方法是使用selection model
使用选择模型
标准 视图类提供默认选择 可以在大多数情况下使用的模型 应用。选择模型 属于一个视图可以获得 使用视图的
selectionModel()
功能,并在许多人之间共享setSelectionModel()
的观点,所以 建立新的选择模型 通常不需要。
如果您有共享选择模型,则无论哪个更改,都会更新视图。然后你可以对它作出反应。如果您想要单元格,行或多个选择,selection flags控件。
//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 &)));
}