How to create sub item in the QTreeWidget?
I was able to create top level items (listing below), but still looking for sub items.
PyQt->5.6
Python->3.5
Spyder->3.0.2
import sys
from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem, QApplication, QWidget
if __name__ == '__main__':
    app = 0
    if QApplication.instance() != None:
        app = QApplication.instance()
    else:    
        app = QApplication(sys.argv)    
    l1 = QTreeWidgetItem([ "String A",  "String B",  "String C" ])
    l2 = QTreeWidgetItem([ "String AA", "String BB", "String CC" ])
    w = QWidget()
    w.resize(510,210)
    tw = QTreeWidget(w)
    tw.resize(500,200)
    tw.setColumnCount(3)
    tw.setHeaderLabels(["Column 1", "Column 2", "Column 3"])
    tw.addTopLevelItem(l1)
    tw.addTopLevelItem(l2)
    w.show()
    app.exec_()
                Use {your QTreeWidgetItem}.addChild(child QTreeWidgetItem)
In my example:
import sys
from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem, QApplication, QWidget
if __name__ == '__main__':
    app = 0
    if QApplication.instance():
        app = QApplication.instance()
    else:
        app = QApplication(sys.argv)
    l1 = QTreeWidgetItem(["String A", "String B", "String C"])
    l2 = QTreeWidgetItem(["String AA", "String BB", "String CC"])
    for i in range(3):
        l1_child = QTreeWidgetItem(["Child A" + str(i), "Child B" + str(i), "Child C" + str(i)])
        l1.addChild(l1_child)
    for j in range(2):
        l2_child = QTreeWidgetItem(["Child AA" + str(j), "Child BB" + str(j), "Child CC" + str(j)])
        l2.addChild(l2_child)
    w = QWidget()
    w.resize(510, 210)
    tw = QTreeWidget(w)
    tw.resize(500, 200)
    tw.setColumnCount(3)
    tw.setHeaderLabels(["Column 1", "Column 2", "Column 3"])
    tw.addTopLevelItem(l1)
    tw.addTopLevelItem(l2)
    w.show()
    sys.exit(app.exec_())

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With