从QAbstractTableModel项目中选择QTableView

时间:2016-04-13 09:56:50

标签: qt tableview selection

我创建了TableView(来自QTableView)和Model(来自QAbstractTableModel),并实现了我需要的所有功能,但现在我必须添加奇怪的功能 - 那些对象(存储在模型中)必须能够使表格视图选择"他们的"行。

它来自于总是存在与它们相关的图形对象这一事实,每当我点击某个对象上的场景时,我希望以表格视图为中心。我可以这样做吗?

1 个答案:

答案 0 :(得分:0)

每次想要更改选择时,您的模型都可以实现发出的信号。像这样:

void CMyModel::sigUpdateSelection(const QItemSelection & selection, QItemSelectionModel::SelectionFlags flags);

并且您可以将此信号连接到表视图的QItemSelectionModel。这就是你选择模型的方法:

QTableView* view = new QTableView(parent);
QItemSelectionModel* selectionModel = view->selectionModel();

QItemSelectionModel有一个广告位select()。这是您连接信号的地方。

这就是你的排放方式:

// Add to current selection
emit sigUpdateSelection(QItemSelection(indexLeft, indexRight), QItemSelectionModel::Select);

// Clear current selection and select new one
emit sigUpdateSelection(QItemSelection(indexLeft, indexRight), QItemSelectionModel::ClearAndSelect);