Qt Designer QListWidget 复选框

5 投票
2 回答
17762 浏览
提问于 2025-04-17 21:52

我正在使用PyQt4和Qt Designer。在我的程序中,我有一个QListWidget,我会在加载文件后往里面添加内容。

我想把这个列表设置成所有的项目都可以被勾选,而不仅仅是可以选择。我在网上查到这是QListWidget的一个“标志”,但是在Qt Designer里我找不到在哪里可以设置这个。

这可能吗?

2 个回答

0

这是一个老生常谈的问题。这里有个答案,但我想稍微解释一下:对于某些组件,仅仅设置项目的标志为 Qt::ItemIsUserCheckable 还不够,还需要设置项目的选中状态,才能让复选框显示出来。此外,没有一个通用的标志可以让所有项目都变得可以选中。

以下是 Qt 文档中的一段摘录:

请注意,可选中的项目需要同时设置合适的标志和初始状态,以指示该项目是否被选中。这在模型/视图组件中会自动处理,但对于 QListWidgetItem、QTableWidgetItem 和 QTreeWidgetItem 的实例,需要手动设置。

12

你可以通过打开编辑列表小部件的选项卡,查看里面的属性,然后设置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)

撰写回答