veso_k
veso_k

Reputation: 21

Select QtreeWidgetItem based on name

I need a simple way to select QtreeWidgetItem based on name with PyQt. For example, I want an item with name "five" to be set as selected.

This is a simple example of my setup:

import sys
from PyQt4 import QtCore, QtGui

app = QtGui.QApplication([])
tree=QtGui.QTreeWidget()
itemsList = ['one']
subItemsList = ['four', 'five', 'six']

for i in itemsList:
    parentItem = QtGui.QTreeWidgetItem()
    tree.addTopLevelItem(parentItem)
    parentItem.setText(0, i)
    for z in subItemsList:
        childItem = QtGui.QTreeWidgetItem(parentItem)
        childItem.setText(0, z)
        parentItem.setExpanded(1)
        indexOfChildItem = parentItem.indexOfChild(childItem)

tree.show()
sys.exit(app.exec_())

I want when the program starts subItem with name "five" to be selected

Can you help me in that? Thank you in advance.

Upvotes: 0

Views: 1820

Answers (1)

veso_k
veso_k

Reputation: 21

This is the working solution:

import sys
from PyQt4 import QtCore, QtGui
from PyQt4.QtGui import QTreeWidgetItemIterator

app = QtGui.QApplication([])
tree=QtGui.QTreeWidget()
itemsList = ['one']
subItemsList = ['four', 'five', 'six']
for i in itemsList:
    parentItem = QtGui.QTreeWidgetItem()
    tree.addTopLevelItem(parentItem)
    parentItem.setText(0, i)
    for z in subItemsList:
        childItem = QtGui.QTreeWidgetItem(parentItem)
        childItem.setText(0, z)
        parentItem.setExpanded(1)
        indexOfChildItem = parentItem.indexOfChild(childItem)

iterator = QTreeWidgetItemIterator(tree, QTreeWidgetItemIterator.All)
while iterator.value():
    item = iterator.value()
    if item.text(0) == "five":
        tree.setCurrentItem(item, 1)
    iterator +=1

tree.show()
sys.exit(app.exec_())    

Upvotes: 1

Related Questions