Sam*_*erg 5 c++ qt qtablewidget
我如何限制在QTableWidget中选择的行/列?我需要强制用户使用连续的选择(已经完成)来精确选择两列和任意数量的行.
谢谢!
您可能需要执行以下两件事之一:
QItemSelectionModel并实现用于添加和删除所选QModelIndexes 的函数,以便仅向其中添加 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();
Run Code Online (Sandbox Code Playgroud)
并且您ignore需要accept确保不会进入无限循环处理selectionChanged信号。