Qt / C ++:检查QListWidgetItem时的信号?

时间:2010-11-23 05:02:19

标签: c++ qt qlistwidget qt-signals

在我的表单中,我有QListWidget,其中包含可检查的QListWidgetItems。我正在寻找一种方法来捕获QListWidgetItem被检查/取消选中的事件。我没有看到任何这样的信号,但也许我错了。我目前正在做的是使用QListWidget::itemClicked()信号并检查checkState的{​​{1}},但这不是我想要的,因为只要点击项目就会发生此事件,不只是切换标记是切换。谁能提供一些帮助?谢谢!

2 个答案:

答案 0 :(得分:20)

显然没有提供此类信号,您最好的选择是使用QListWidget::itemChanged(QListWidgetItem* item),并扫描生成的item->checkState()。与使用itemClicked

相比,这应该略有改进

答案 1 :(得分:0)

额外的选项是使用您自己的QAbstractListModelQListView。首先,这会添加一些额外的代码,因为您需要添加自己的管理代码。但是你确实获得了较低级别的访问权限。基本上是因为QListView会询问您的模型该做什么。它还会将输入转发回您的listmodel,您可以在其中挂钩。

或者,您可以继承QStandardItemModel并捕获与更改复选框相关的某些修改。