禁止在 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