Apr-22-2020, 01:57 PM
I have the following code:
More sub-nodes exist, it should always expands the last node.
Help is much appreciated!
import sys, os from PySide2.QtWidgets import QApplication, QDialog, QTreeWidgetItem, QTreeWidget, QHBoxLayout, \ QVBoxLayout, QStyleFactory class Form(QDialog): def __init__(self, parent=None): super(Form, self).__init__(parent) self.setFixedHeight(400) self.layout = QHBoxLayout() self.layout.setSpacing(1) self.treeview = QTreeWidget() self.set_layout() self.set_treeview() self.setLayout(self.layout) def set_layout(self): vbox = QVBoxLayout() vbox.addWidget(self.treeview) self.layout.setSpacing(1) self.layout.addLayout(vbox) self.treeview.setFixedWidth(300) self.treeview.setFixedWidth(200) def set_treeview(self): self.treeview.clear() a = QTreeWidgetItem(self.treeview, ['A']) b = QTreeWidgetItem(self.treeview, ['B']) c = QTreeWidgetItem(self.treeview, ['C']) a_dict = {'a1':'test1', 'a2':'test2'} a_variables = ['p', 's'] b_dict = {'b1':'test1'} b_variables = ['c', 'p'] c_dict = {'c1':'test1', 'c2':'test2', 'c3':'test3'} c_variables = ['m', 'd'] self.add_list_to_treeview(a, a_dict, a_variables) self.add_list_to_treeview(b, b_dict, b_variables) self.add_list_to_treeview(c, c_dict, c_variables) def add_list_to_treeview(self, parent, _dict, variables): for item in _dict: node = QTreeWidgetItem(parent, [item]) if parent.text(0) == 'C': if _dict: for variable in variables: QTreeWidgetItem(node, variable) if __name__ == '__main__': os.getcwd() app = QApplication(sys.argv) QApplication.setStyle(QStyleFactory.create('Fusion')) self = Form() self.show() sys.exit(app.exec_())How can I expand only the last sub-node of 'C' in my treeview widget which is 'c3' in this case.
More sub-nodes exist, it should always expands the last node.
Help is much appreciated!