我将如何限制在 QTableWidget 中选择的行/列?我需要强制用户使用连续选择(已经完成)来准确选择两列和任意数量的行。
谢谢!
您可能必须做以下两件事之一:
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
信号。