I use qt with Python.
I want to implement a treeview with multiple columns. One column is already working.
If I add only one text item (variable txt) to the treeView it works)
class TreeStandardItem(QStandardItem):
    def __init__(self, txt='', font_size=12, set_bold=False, color=QColor(0, 0, 0)):
        super().__init__()
        fnt = QFont('Open Sans', font_size)
        fnt.setBold(set_bold)
        self.setEditable(False)
        self.setForeground(color)
        self.setFont(fnt)
        
        # one Item is added to treeView
        self.setText(txt) 
class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
       #...
       #...
       texas = TreeStandardItem('texas', 10)
       nyc = TreeStandardItem('NYC', 10)
       # Create Link between parent and child
       texas.appendRow(nyc)
       treeView = self.ui.treeView1
       # Create Model
       treeModel = QStandardItemModel()
       rootNode = treeModel.invisibleRootItem()
       # Header
       treeModel.setHeaderData(0, Qt.Horizontal, 'Column-1')
       treeModel.setHeaderData(1, Qt.Horizontal, 'Column-2')
       treeModel.setHeaderData(2, Qt.Horizontal, 'Column-3')
        # Add roots to  the view
        rootNode.appendRow(texas)
   
        #...  
I want to add some Database Date for a hierarchical structure to the treeView- like:
Column1-------------------------------Column2------------------------Column3
-> Parent                            Firstname Lastname             User-ID
    -> Child 01                      Firstname Lastname             User-ID
       -> Another Child 01           Firstname Lastname             User-ID
       -> Another Child 02           Firstname Lastname             User-ID
    -> Child 02                      Firstname Lastname             User-ID
Any solutions? If I changed the txt variable from string to list I get an error. Here is the altered code:
class StandardItem(QStandardItem):
    def __init__(self, txt=[], font_size=10, set_bold=False, color=QColor(0, 0, 0)):
        super().__init__()
        fnt = QFont('Open Sans', font_size)
        fnt.setBold(set_bold)
        self.setEditable(False)
        self.setForeground(color)
        self.setFont(fnt)
        # works - iterating with list item is ok
        # self.setText(txt[1]) 
        # --------------- !!!! ---------------
        # Need something to loop over the columns..
        # --------------- !!!! ---------------
class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        # .....
        # Create model 
        
        treeModel = QStandardItemModel()
        rootNode = treeModel.invisibleRootItem()
        parent01 = StandardItem(['108112', 'Mary Luke', '55' ], 12, set_bold=True)
        rootNode.appendRow(parent01)
        child01 = StandardItem(['108108', 'Lukas Andrews', '13' ], 12, set_bold=True)
        parent01.appendRow(child01)