Reputation: 21
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
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