QTreeWigetの使い方

PyQt QTreeWidget サンプル PySide 編集可能なQTreeWidgetを作る

Sample

from logging import getLogger
logger = getLogger(__name__)
import sys
from PySide import QtGui, QtCore
class TreeWindow(QtGui.QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('Main window')
self.treeWidget=self.createTreeWidget()
self.setCentralWidget(self.treeWidget)
def createTreeWidget(self):
treeWidget = QtGui.QTreeWidget(self)
#treeWidget.setColumnCount(5)
treeWidget.setHeaderLabels(["名前", ""])
return treeWidget
class DataItem:
def __init__(self, name, value, *children):
self.columns=[name, str(value)]
self.children=children
def addTreeItem(parent, data):
item=QtGui.QTreeWidgetItem(data.columns)
if isinstance(parent, QtGui.QTreeWidget):
parent.addTopLevelItem(item)
else:
parent.addChild(item)
# Treeにaddした後でexpandする
item.setExpanded(True)
for child in data.children:
addTreeItem(item, child)
if __name__ == '__main__':
from logging import DEBUG, basicConfig
basicConfig(
level=DEBUG
)
app = QtGui.QApplication(sys.argv)
window = TreeWindow()
addTreeItem(window.treeWidget, DataItem('name0', '500'
, DataItem('name0_0', '550')
, DataItem('name0_1', '560')
))
addTreeItem(window.treeWidget, DataItem('name1', '600'
, DataItem('name1_0', '550'
, DataItem('name1_0_0', 555)
)
))
window.show()
window.resize(640, 480)
sys.exit(app.exec_())

TreeWidget scrollToItem setCurrentItem indexFromItem TreeWidgetItem setText childCount