Динамическое добавление элементов в QTreeWidget
Необходимо добавить элементы из массивов в QTreeWidget, учитывая возможность увеличения их количества. Элементы разделяются на подразделы и элементы в них.
QTreeWidget разделяется на две columns.
Необходимо, что бы была возможность создавать подразделы и элементы в них не прибегая к изменениям в коде (к примеру, в зависимости от полученных из базы данных элементов).
Так, по итогу, должен выглядет QTreeWidget.
import sys
from PyQt5.Qt import *
from PyQt5 import QtWidgets, QtCore
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.treeW = QTreeWidget()
self.treeW.setHeaderItem(QtWidgets.QTreeWidgetItem(['Номер', 'Задание']))
# Номера подразделов
_id = ['1', '2']
# Названия подразделов
_name = ['Свойства стека', 'Время выполненя и сложность']
# Элементы этого массива должны находиться должны находиться в первом подразделе
_tasks_one = ['Что такое стек?', 'В каком порядке можно забрать данные из стека?', 'Выберите пять основных функций при работе с стеком?']
# А этого массива во втором
_task_two = ['Что такое сложность O(n)?', 'Что такое сложность O(n^2)?', 'Как опередлить сложность O(n log n)?']
topLevelItem = QtWidgets.QTreeWidgetItem(['', ''])
topLevelItem.setFlags(topLevelItem.flags() | QtCore.Qt.ItemIsEditable)
self.treeW.addTopLevelItem(topLevelItem)
layout = QVBoxLayout(self)
layout.addWidget(self.treeW)
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWindow()
w.resize(500, 300)
w.setWindowTitle('My Window')
w.show()
sys.exit(app.exec())
