2014-09-19 116 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