im nachfolgenden, ausführbaren Quelltext seht ihr sehr schnell was ich vorhabe. Ich habe euch auch ein kleines Bild mitgebracht, um das ganze zu verdeutlichen. Das Bild mit der Aufschrift "Original" zeigt das an, was bei dem derzeitigen Quelltext rauskommt, wenn das Programm ausgeführt wird. Das Bild mit der Aufschrift "Erwartet" zeigt, wie ich es gerne hätte. Und da sind wir auch schon beim Thema. Mein Anliegen ist es, dass sowohl bei Child-Einträgen (was ja offensichtlich funktioniert) als auch bei Parent-Einträgen die fortlaufende Zählung in der zweiten Spalte angezeigt wird. Derzeit sieht es so aus, dass die Zahlen 0, 4 und 8 nicht neben den Parent-Einträgen in der zweiten Spalte zu finden ist, sondern drunter. Ich stecke jetzt gedanklich irgendwie fest.
Code: Alles auswählen
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from sys import argv
from PyQt4.QtGui import QTreeView, QApplication, QAbstractItemView, \
QStandardItemModel, QStandardItem
class TreeModelTester(QTreeView):
def __init__(self):
QTreeView.__init__(self)
# create attributes
self.count = 0
self.setSelectionBehavior(QAbstractItemView.SelectRows)
# create model
self.model = QStandardItemModel()
# set header for model
self.model.setHorizontalHeaderLabels(['Column 1', 'Column 2'])
self.setModel(self.model)
self.setUniformRowHeights(True)
self.populate_data()
def populate_data(self):
for i in range(3):
count_item = QStandardItem('{}'.format(self.count))
parent1 = QStandardItem('Parent' )
parent1.appendRow([count_item])
self.count += 1
for j in range(3):
count_item = QStandardItem('{}'.format(self.count))
child1 = QStandardItem('Child {}'.format(i*3+j))
parent1.appendRow([child1, count_item])
self.count += 1
self.model.appendRow(parent1)
if __name__ == '__main__':
app = QApplication(argv)
tester = TreeModelTester()
tester.show()
app.exec_()
