Qt Designer QListWidget 复选框

Posted

技术标签:

【中文标题】Qt Designer QListWidget 复选框【英文标题】:Qt Designer QListWidget checkbox 【发布时间】:2014-03-12 02:00:25 【问题描述】:

我正在使用 PyQt4 和 Qt 设计器。我有一个 QListWidget 在我的程序中加载文件后填充。

我想设置它,以便所有项目都可以检查,而不是只能选择。我在网上发现这是QListWidget 的“标志”,但是在Qt Designer 中我看不到在哪里执行此操作。

有可能吗?

【问题讨论】:

【参考方案1】:

您可以通过打开编辑列表小部件项目选项卡来执行此操作,并查看属性。并设置 checkState 属性。

**更新**

item = QtGui.QListWidgetItem()
item.setText(QtGui.QApplication.translate("Dialog", x, None,    QtGui.QApplication.UnicodeUTF8))
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
item.setCheckState(QtCore.Qt.Unchecked)
self.listWidget.addItem(item)

【讨论】:

好的,我现在明白了,但这只是在你制作了一个项目之后。我的清单中没有任何项目。我在程序启动后填充列表,因此复选框不是针对单个项目,而是针对将在该列表小部件中的所有项目 @user1938107 :分享用于加载 gui 的代码以及如何填充 itemwidget 我有一个列表小部件,它被称为 myListwidget,我通过 self.myListwidget.addItem(someString) 填充它 所以 addItem 只是自动创建 QListWidgetItem() 而无需指定它,但随后不允许设置标志?对于 qt 来说,让列表中的所有项目在创建时都可以检查是有意义的【参考方案2】:

这个古老的问题。这里有一个答案,但我会尝试澄清一下:对于几个组件,设置项目标志 Qt::ItemIsUserCheckable 是不够的,需要设置项目的检查状态才能出现复选框。此外,没有小部件标志可以使所有项目都可检查。

Qt 文档摘录:

请注意,可检查的项目需要同时提供一组合适的 标志和初始状态,指示该项目是否被选中或 不是。对于模型/视图组件,这是自动处理的,但是 需要为 QListWidgetItem 的实例显式设置, QTableWidgetItem 和 QTreeWidgetItem。

【讨论】:

以上是关于Qt Designer QListWidget 复选框的主要内容,如果未能解决你的问题,请参考以下文章

Qt - 何时编辑 QListWidget 行的信号?

Qt学习之QListWidget删除Item

Qt 5.7 -> 5.8 将 QIcon 添加到 QListwidget

Qt - QStringList 到 QListWidget*item

Qt - 如何从 QListWidget 中获取选定的自定义项目?

Qt学习: QListWidget的用法.