1

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

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

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

谢谢。

4

2 回答 2

2

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

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

希望有帮助

于 2011-04-13T17:46:55.283 回答
2

另一种方法是使用选择模型

使用选择模型

标准视图类提供可在大多数应用程序中使用的默认选择模型。使用视图的函数可以获得属于一个视图的选择模型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 &)));
 }
于 2011-04-13T19:23:05.410 回答