2016-01-13 44 views
-1

我需要一種簡單的方法來根據name和PyQt來選擇QtreeWidgetItem。 例如,我想將名稱爲"five"的項目設置爲選中狀態。選擇基於名稱的QtreeWidgetItem

這是我的設置一個簡單的例子:

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_()) 

我想在程序啓動時subItem與名"five"來選擇

你能幫助我嗎?先謝謝你。

回答

0

這是工作的解決方案:

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_())