15

在我的表格中,我有一个QListWidget包含 checkable的内容QListWidgetItems。我正在寻找一种方法来捕获QListWidgetItem被选中/未选中的事件。我没有看到任何这样的信号存在,但也许我错了。我目前正在做的是使用QListWidget::itemClicked()信号并检查 的checkStateQListWidgetItem但这不是我想要的,因为只要单击该项目就会发生此事件,而不仅仅是切换复选标记。任何人都可以提供一些帮助吗?谢谢!

4

2 回答 2

24

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

于 2010-11-23T05:31:23.640 回答
0

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

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

于 2017-10-19T17:24:30.293 回答