2017-01-15 13 views
1

PyQt4 QTreeWidgetを作成し、QTreeWidgetItem構造体に続いて追加しました。PyQt4 QTreeWidget親子インデックス

treeWidget = QTreeWidget() 

twi = QTreeWidgetItem(['Level_1']) 
twi.addChild(QTreeWidgetItem(['SubLevel_1_1'])) 
twi.addChild(QTreeWidgetItem(['SubLevel_1_2'])) 
twi.addChild(QTreeWidgetItem(['SubLevel_1_3'])) 
twi.addChild(QTreeWidgetItem(['SubLevel_1_4'])) 

treeWidget.addTopLevelItem(twi) 

子アイテムを選択したときに親(トップレベルアイテム)と子インデックスを取得したいと考えています。

答えて

0

まず第一に、あなたがメソッドからウィジェットにアクセスすることを計画している場合、私はそれあなたの子育てウィジェット/ GUIの財産になるだろう、そう

self.treeWidget = QTreeWidget() 

は、次にあなたの例では、あなたが追加するのを忘れあなたはこのような何かを追加することができ、あなたの現在の選択を見つけるために、トップレベルの項目

self.treeWidget.insertTopLevelItem(0,twi) 

def getCurrentItems(self): 

    """Returns Current top level item and child index. 
    If no child is selected, returns -1. 
    """ 

    #Check if top level item is selected or child selected 
    if self.treeWidget.indexOfTopLevelItem(self.treeWidget.currentItem())==-1: 
     return self.treeWidget.currentItem().parent(),self.treeWidget.currentItem().parent().indexOfChild(self.treeWidget.currentItem()) 
    else: 
     return self.treeWidget.currentItem(),-1 

これを介してメソッドを接続します。

self.treeWidget.itemActivated.connect(self.getCurrentItems) 

+0

これは機能します!ドキュメントの目的のために、子が選択されたときに親インデックスを返すコードを追加します。 self.treeWidget.indexOfTopLevelItem(self.treeWidget.currentItem()。parent()) – Damian