如何限制在QTableWidget中选择的行/列?我需要强制用户使用连续的选择(已经完成)来精确选择两列和任意数量的行。
谢谢!
答案 0 :(得分:3)
你可能需要做两件事之一:
QItemSelectionModel
的子类并实现添加和删除所选QModelIndex
es的功能,以便您只添加2行中的项目。您可以通过自定义实现来捕获QItemSelectionModel
发出的信号,例如:
connect(tableWidget->selectionModel(),
SIGNAL(selectionChanged(QItemSelection &, QItemSelection &)),
selectionHandler,
SLOT(updateSelection(QItemSelection &, QItemSelection &)));
selectionHandler
是检查QModelIndex
中QItemSelection
项的行和列的对象,并删除您希望用户访问的行范围之外的所有索引保持然后:
selectionHandler->ignoreSelectionUpdateSignal();
tableWidget->selectionModel()->select(QItemSelection&);
selectionHandler->acceptSelectionUpdateSignal();
ignore
和accept
您需要确保不会进入无限循环处理selectionChanged
信号。