Joh*_*ohn 2 python checkbox qt pyqt qlistwidget
我试图读入一个 xml 文件并QListWidget
用它的一些内容填充 a 。每个条目都应该有一个复选框。
在 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)
Run Code Online (Sandbox Code Playgroud)
这将在列表小部件中创建一个测试用例名称列表。但是我无法将这些项目放入复选框中。item.setFlags
orItemIsUserCheckable
无法识别列表小部件,因此在上面的示例中注释掉了这两行。
你就快到了:这只是你试图让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)
Run Code Online (Sandbox Code Playgroud)
(注意:对于 PyQt4,使用 QtGui 而不是 QtWidgets)
归档时间: |
|
查看次数: |
4864 次 |
最近记录: |