【发布时间】:2011-12-28 16:39:25
【问题描述】:
我将如何限制在 QTableWidget 中选择的行/列?我需要强制用户使用连续选择(已经完成)来准确选择两列和任意数量的行。
谢谢!
【问题讨论】:
标签: c++ qt qtablewidget
我将如何限制在 QTableWidget 中选择的行/列?我需要强制用户使用连续选择(已经完成)来准确选择两列和任意数量的行。
谢谢!
【问题讨论】:
标签: c++ qt qtablewidget
您可能必须做以下两件事之一:
QItemSelectionModel 并实现用于添加和删除选定 QModelIndexes 的函数,以便您只向其中添加 2 行中的项目。您可以通过自定义实现来捕获QItemSelectionModel 发出的信号,例如:
connect(tableWidget->selectionModel(),
SIGNAL(selectionChanged(QItemSelection &, QItemSelection &)),
selectionHandler,
SLOT(updateSelection(QItemSelection &, QItemSelection &)));
selectionHandler 是检查QItemSelection 中QModelIndex 项目的行和列并删除您希望用户保留的行范围之外的所有索引的对象,然后:
selectionHandler->ignoreSelectionUpdateSignal();
tableWidget->selectionModel()->select(QItemSelection&);
selectionHandler->acceptSelectionUpdateSignal();
ignore 和 accept 您需要确保不会陷入处理selectionChanged 信号的无限循环。
【讨论】: