Qt Designer中的QListWidget复选框

5
我正在使用PyQt4和Qt Designer。在我的程序中加载文件后,我有一个QListWidget,我会在其中填充数据。

我想让所有项目都可以被勾选,而不仅仅是可选择的。我在网上找到了这是“QListWidget”的一个“flag”,然而,在Qt Designer中我无法看到如何设置这个标志。

这可能吗?

2个回答

12

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

enter image description here

**更新**

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)

我明白现在的情况了,但那只是在你创建一个项目之后才会有。我的列表中没有任何项目。我在程序启动后填充列表,所以复选框不是针对单个项目,而是针对将出现在该列表小部件中的所有项目。 - user-2147482637
@user1938107:请分享您用于加载GUI并填充ItemWidget的代码。 - thecreator232
1
我有一个列表小部件,它被称为myListwidget,并且我通过self.myListwidget.addItem(someString)来填充它。 - user-2147482637
1
所以addItem只是自动创建了QListWidgetItem(),无需指定,但却不允许设置标志?Qt应该在创建列表中的所有项目时都有一个可选的选择框。 - user-2147482637

0

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

以下是Qt文档的摘录:

请注意,可勾选的项目需要同时给定适当的一组标志和初始状态,指示项目是否已选中。这在模型/视图组件中自动处理,但需要为QListWidgetItem、QTableWidgetItem和QTreeWidgetItem的实例明确设置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接