【发布时间】:2019-07-12 01:33:10
【问题描述】:
我有一个我创建并添加到 QListWidget 的项目列表,其中这些项目被“分类”。
在我的以下代码中,我有 2 个类别 - -- All Nums -- 和 -- All Letters --。在每个类别中,它都有其子项。
由于我已将所有项目设为可勾选,是否可以勾选/取消勾选这些标题项目并影响其子项目?
例如。如果我检查-- All Nums,所有num_items 也会被检查。如果我取消选中它,它们也会取消选中。
class TestDialog(QtGui.QDialog):
def __init__(self, parent=None):
super(TestDialog, self).__init__()
self.listWidget = QtGui.QListWidget()
all_num = QtGui.QListWidgetItem('-- All Nums --')
self.listWidget.addItem(all_num)
num_items = ['One', 'Two', 'Three']
for num in num_items:
self.listWidget.addItem(num)
all_letters = QtGui.QListWidgetItem('-- All Letters --')
self.listWidget.addItem(all_letters)
letter_items = ['One', 'Two', 'Three']
for letter in letter_items:
self.listWidget.addItem(letter)
for index in range(self.listWidget.count()):
item = self.listWidget.item(index)
item.setFlags(
item.flags() |
QtCore.Qt.ItemIsUserCheckable |
QtCore.Qt.ItemIsEditable
)
item.setCheckState(QtCore.Qt.Unchecked)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.listWidget)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
w = TestDialog()
w.show()
sys.exit(app.exec_())
【问题讨论】:
标签: python pyqt4 qlistwidget qlistwidgetitem