【问题标题】:How to limit the selection in a QTableWidget如何限制 QTableWidget 中的选择
【发布时间】:2011-12-28 16:39:25
【问题描述】:

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

谢谢!

【问题讨论】:

    标签: c++ qt qtablewidget


    【解决方案1】:

    您可能必须做以下两件事之一:

    1. 您必须继承 QItemSelectionModel 并实现用于添加和删除选定 QModelIndexes 的函数,以便您只向其中添加 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 信号的无限循环。

    【讨论】:

    • 好的,谢谢,我想我会采用一种更简单的方式,如果用户选择太多,它只会向用户发送一条消息,但这确实回答了我的问题。
    猜你喜欢
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 2014-06-30
    • 2019-12-16
    • 2011-01-04
    • 1970-01-01
    相关资源
    最近更新 更多