在我的表格中,我有一个QListWidget
包含 checkable的内容QListWidgetItems
。我正在寻找一种方法来捕获QListWidgetItem
被选中/未选中的事件。我没有看到任何这样的信号存在,但也许我错了。我目前正在做的是使用QListWidget::itemClicked()
信号并检查 的checkState
,QListWidgetItem
但这不是我想要的,因为只要单击该项目就会发生此事件,而不仅仅是切换复选标记。任何人都可以提供一些帮助吗?谢谢!
问问题
12228 次
2 回答
24
显然没有提供这样的信号,你最好的选择是使用QListWidget::itemChanged(QListWidgetItem* item)
,并扫描结果item->checkState()
。这应该比使用略有改进itemClicked
于 2010-11-23T05:31:23.640 回答
0
一个额外的选择是使用你自己QAbstractListModel
的QListView
. 起初,这确实会添加一些额外的代码,因为您需要添加自己的管理代码。但是您确实获得了较低级别的访问权限。基本上是因为QListView
会问你的模型要做什么。它还会将输入转发回您的列表模型,您可以在其中挂接它。
或者,您可以子类QStandardItemModel
化并捕获与更改复选框相关的某些编辑。
于 2017-10-19T17:24:30.293 回答