2014-09-19 66 views
0

我目前有一個名爲「treeWidget」的QTreeWidget,並且對於我而言,無法弄清楚如何獲取索引值或所選treeWidget分支的文本。PyQt:獲取當前QTreeWidget項目

self.treeWidget樣子:
用戶
-inbox
-Sent
-Drafts
-Trash

我需要知道哪個分支被選擇,所以我可以在分支的相應的顯示文件夾文件夾。我一直在努力去理解Qt文檔,但是我完全被C++難住了。 PyQt文檔沒有任何示例。我到處搜索了三天,試圖修補並找出答案,但不斷髮現錯誤。

我想我來最接近的是這樣的:

 
self.connect(self.treeWidget,SIGNAL("itemSelectionChanged()"), self.loadAllMessages) 

def loadAllMessages(self, folder): 
    item = self.treeWidget.currentItem() 

我需要的setSelectionMode第一還是什麼?所有幫助非常感謝!

回答

1

嘗試這個

#remove the old way of connecting 
#self.connect(self.treeWidget,SIGNAL("itemSelectionChanged()"), self.loadAllMessages) 
self.treeWidget.itemSelectionChanged.connect(self.loadAllMessages) 
def loadAllMessages(self, folder): 
    getSelected = self.treeWidget.selectedItems() 
    if getSelected: 
     baseNode = getSelected[0] 
     getChildNode = baseNode.text(0) 
     print getChildNode 
+0

謝謝!這工作! – Ang 2014-09-19 13:01:50

+0

我也可以通過這種方式獲得所選小孩的索引號嗎?看起來我不能用'.indexOfChild'替換'.text'。 PyQt文檔說「int indexOfChild(self,QTreeWidgetItem achild)」,但是我不知道我應該把它作爲QTreeWidgetItem achild的一部分...... – Ang 2014-09-19 13:04:47

+0

你需要使用indexFromItem來找到它。類似itmIndex = self.treeWidget.indexFromItem(baseNode) – Achayan 2014-09-19 17:46:26