我创建了TableView
(来自QTableView
)和Model
(来自QAbstractTableModel
),并实现了我需要的所有功能,但现在我必须添加奇怪的功能 - 那些对象(存储在模型中)必须能够使表格视图选择"他们的"行。
它来自于总是存在与它们相关的图形对象这一事实,每当我点击某个对象上的场景时,我希望以表格视图为中心。我可以这样做吗?
答案 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);