如何限制QTableWidget中的选择

How to limit the selection in a QTableWidget

本文关键字:选择 QTableWidget 何限制      更新时间:2023-10-16

如何限制在QTableWidget中选择的行/列?我需要强制用户使用连续选择(已经完成)来选择恰好两列和任意数量的行。

谢谢!

你可能要做两件事中的一件:

  1. 您必须子类化QItemSelectionModel并实现添加和删除选定QModelIndex的功能,以便您只添加2行的项目到它。
  2. 您可以通过自定义实现来捕获QItemSelectionModel发出的信号,例如:

    connect(tableWidget->selectionModel(), SIGNAL(selectionChanged(QItemSelection &, QItemSelection &)), selectionHandler, SLOT(updateSelection(QItemSelection &, QItemSelection &)));

selectionHandler是检查QItemSelectionQModelIndex项的行和列的对象,并删除所有在您希望用户保留的行范围之外的索引,然后:

selectionHandler->ignoreSelectionUpdateSignal();
tableWidget->selectionModel()->select(QItemSelection&);
selectionHandler->acceptSelectionUpdateSignal();

ignoreaccept你需要确保你不会进入一个无限循环处理selectionChanged信号