2017-11-16 2 views
1

중첩 목록을 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) 

enter image description here

내가 "과일"항목의 선택을하지 않도록해야합니다.

+1

QTreeView 또는 QTreeWidget? ** QTreeWidgetItem ** – eyllanesc

+0

메인 위젯 - QTreeWidget – kiryha

답변

1

당신은 item-flags에서 Qt.ItemIsSelectable를 제거해야합니다

widgetTrim = QTreeWidgetItem() 
widgetTrim.setFlags(widgetTrim.flags() & ~Qt.ItemIsSelectable) 

플래그가 함께 조합 ItemFlag 값 논리합입니다. 따라서 bitwise AND NOT 연산은 기존 플래그 조합에서 ItemIsSelectable을 제거하는 데 사용됩니다.

+0

고맙습니다. 그게'& ~'을 의미합니까? – kiryha

+1

@kiryha. 그것은 bitwise AND NOT입니다. 플래그는 함께 OR 연산을하므로 모든 현재 플래그를 취할 수 있지만 선택 가능 플래그는 없습니다. – ekhumoro