PyQt: get the current QTreeWidget item

Ang picture Ang · Sep 19, 2014 · Viewed 15k times · Source

I presently have a QTreeWidget named 'treeWidget', and for the life of me, cannot figure out how to get the index value or the text of the selected treeWidget branch.

self.treeWidget looks like:
User
-Inbox
-Sent
-Drafts
-Trash

I need to know which branch is selected so I can display folders in the branch's corresponding file folder. I've been trying to understand the Qt documentation, but I'm totally stumped by the C++. And the PyQt docs don't have any examples. I've searched everywhere for three days trying to tinker and figure out the answer but keep coming up with errors.

The closest I think I've come is something like this:

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

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

Do I need to setSelectionMode first or something? All help is greatly appreciated!

Answer

Achayan picture Achayan · Sep 19, 2014

Try This

#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