我正在尝试读取xml文件,并使用QListWidget
其中的一些内容填充。每个条目应具有一个复选框。
在Qt Designer中,我创建了列表,并添加了一个具有复选框的项目,方法是将该项目添加到listWidget,然后右键单击它,然后选择“编辑项目”>“属性”>“将标志设置为UserCheckable”。所以我可以手动进行。
但是,当我读取xml文件以填充ListWidget时,无法检查这些项目。
import xml.etree.ElementTree as et
xml_file = os.path.join(path, testcase_file)
tree = et.parse(xml_file)
root = tree.getroot()
for testcases in root.iter('testcase'):
testcase_name = str(testcases.attrib)
item = self.listWidgetTestCases
item.addItem(QtGui.QApplication.translate("qadashboard", testcase_name, None))
# item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
# item.setCheckState(QtCore.Qt.Unchecked)
这将在list-widget中创建测试用例名称的列表。但是,我无法将这些项目放入复选框。item.setFlags
或ItemIsUserCheckable
列表小部件无法识别,因此在上面的示例中注释了这两行。
您几乎就在那里:只是您要使list-widget成为可检查的,而不是使每个list-widget-item成为可检查的。
尝试以下方法:
from PyQt5 import QtWidgets, QtCore
self.listWidgetTestCases = QtWidgets.QListWidget()
for testcases in root.iter('testcase'):
testcase_name = str(testcases.attrib)
item = QtWidgets.QListWidgetItem(testcase_name)
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
item.setCheckState(QtCore.Qt.Unchecked)
self.listWidgetTestCases.addItem(item)
(注意:对于PyQt4,请使用QtGui而不是QtWidgets)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句