禁止在 QTreeWidget 中选择父行
Disable selection of parent rows in a QTreeWidget
我在 QTreeWidget 中填充嵌套列表,我需要禁用父行的选择。
密码是:
def fillTree(self):
'''
Fill UI with list of parts
'''
roots = ['APLE', 'ORANGE', 'MANGO']
childs = ['body', 'seed', 'stern']
parent = self.treeWidget.invisibleRootItem()
for root in roots:
widgetTrim = QTreeWidgetItem()
widgetTrim.setText(0, root)
parent.addChild(widgetTrim)
for child in childs:
widgetPart = QTreeWidgetItem()
widgetPart.setText(0, child)
widgetTrim.addChild(widgetPart)
我需要避免选择 "fruit" 项。
您必须从 item-flags 中删除 Qt.ItemIsSelectable
:
widgetTrim = QTreeWidgetItem()
widgetTrim.setFlags(widgetTrim.flags() & ~Qt.ItemIsSelectable)
标志是 ItemFlag
值的 OR 组合。因此,bitwise AND NOT 操作用于从现有标志组合中删除 ItemIsSelectable
。
我在 QTreeWidget 中填充嵌套列表,我需要禁用父行的选择。
密码是:
def fillTree(self):
'''
Fill UI with list of parts
'''
roots = ['APLE', 'ORANGE', 'MANGO']
childs = ['body', 'seed', 'stern']
parent = self.treeWidget.invisibleRootItem()
for root in roots:
widgetTrim = QTreeWidgetItem()
widgetTrim.setText(0, root)
parent.addChild(widgetTrim)
for child in childs:
widgetPart = QTreeWidgetItem()
widgetPart.setText(0, child)
widgetTrim.addChild(widgetPart)
我需要避免选择 "fruit" 项。
您必须从 item-flags 中删除 Qt.ItemIsSelectable
:
widgetTrim = QTreeWidgetItem()
widgetTrim.setFlags(widgetTrim.flags() & ~Qt.ItemIsSelectable)
标志是 ItemFlag
值的 OR 组合。因此,bitwise AND NOT 操作用于从现有标志组合中删除 ItemIsSelectable
。