交互式QSqlTableModel

时间:2011-04-13 17:13:12

标签: sql qt qtableview

请你给我一个建议。我使用QSqlTableModel类来访问数据库表,使用QTableView来查看它。我应该处理什么实例来了解用户在QTableView中移动光标的信号?

我想在QTableView A中移动光标后更新TableView B的内容(表B在数据库中有表A的外键)

可能有点来自http://doc.trolltech.com/latest/qabstractitemmodel.html

感谢。

2 个答案:

答案 0 :(得分:2)

Ivan,如果你在谈论表光标,你可以重新实现虚拟的QAbstractItemView::moveCursor方法。

如果您正在谈论鼠标光标,可以使用QAbstractItemView::viewportEvent方法来检测鼠标移动事件。您需要将QWidget :: setMouseTracking(true)设置为QTableView的视口。

希望有所帮助

答案 1 :(得分:2)

另一种方法是使用selection model

  

使用选择模型

     

标准   视图类提供默认选择   可以在大多数情况下使用的模型   应用。选择模型   属于一个视图可以获得   使用视图的selectionModel()   功能,并在许多人之间共享   setSelectionModel()的观点,所以   建立新的选择模型   通常不需要。

如果您有共享选择模型,则无论哪个更改,都会更新视图。然后你可以对它作出反应。如果您想要单元格,行或多个选择,selection flags控件。

另见working with selections

//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 &)));
 }