代码之家  ›  专栏  ›  技术社区  ›  Joseph

Qt/c++:检查QListWistigestTM的信号吗?

  •  14
  • Joseph  · 技术社区  · 15 年前

    在我的身体里我有一个 QListWidget 其中包含可检查的 QListWidgetItems . 我正在寻找一种方法来捕捉 QListWidgetItem 正在检查/未检查。我看不出有这样的信号,但也许我错了。我目前正在使用 QListWidget::itemClicked() 发出信号并检查 checkState QlistWidgetItem项目 ,但这不是我想要的,因为每次单击该项时都会发生此事件,而不仅仅是“去”复选标记被切换。有人能帮忙吗?谢谢!

    2 回复  |  直到 8 年前
        1
  •  20
  •   Daniel Vérité    9 年前

    显然没有这样的信号,你最好的选择是使用 QListWidget::itemChanged(QListWidgetItem* item) ,并扫描结果 item->checkState() . 这应该比使用稍有改进 itemClicked

        2
  •  0
  •   Daniël Sonck    8 年前

    一个额外的选择是使用你自己的 QAbstractListModel 用一个 QListView . 首先,这确实添加了一些额外的代码,因为您需要添加自己的管理代码。但你确实可以获得一个较低级别的访问权限。基本上是因为 QlistView(列表视图) 会问你的模特该怎么做。它还将把输入传递回您的listmodel,在那里您可以钩住它。

    或者您可以子类 QStandardItemModel 并捕获与更改复选框相关的某些编辑。

    推荐文章