在我的表单中,我有QListWidget
,其中包含可检查的QListWidgetItems
。我正在寻找一种方法来捕获QListWidgetItem
被检查/取消选中的事件。我没有看到任何这样的信号,但也许我错了。我目前正在做的是使用QListWidget::itemClicked()
信号并检查checkState
的{{1}},但这不是我想要的,因为只要点击项目就会发生此事件,不只是切换标记是切换。谁能提供一些帮助?谢谢!
答案 0 :(得分:20)
显然没有提供此类信号,您最好的选择是使用QListWidget::itemChanged(QListWidgetItem* item)
,并扫描生成的item->checkState()
。与使用itemClicked
答案 1 :(得分:0)
额外的选项是使用您自己的QAbstractListModel
和QListView
。首先,这会添加一些额外的代码,因为您需要添加自己的管理代码。但是你确实获得了较低级别的访问权限。基本上是因为QListView
会询问您的模型该做什么。它还会将输入转发回您的listmodel,您可以在其中挂钩。
或者,您可以继承QStandardItemModel
并捕获与更改复选框相关的某些修改。