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!
