Не добавляется дочерний узел
В заголовочном файле есть QList<QString>, содержащий названия подсистем. Есть QMap<QString, QTreeWidgetItem>, содержащий QTreeWidgetItem по названию подсистемы. Такой же принцип для процедур, на каждую подсистему.
Ошибка заключается в определении функции setEquipmentUndersystemProcedure. Дочерний QTreeWidgetItem(процедура) не добавляется к родителю.
Фрагмент из mainwindow.h
QList<QString> undersystems{"1.Документооборот(в разработке)", "2.Склад(в разработке)", "3.Закупки(в разработке)", "4.Управление оборудованием"};
QMap<QString, QTreeWidgetItem> undersystemsItems;
QList<QString> equpmentProcedures{"1.Входной контроль", "2.Идентификация и учет", "3.Аттестация", "4.Эксплуатация", "5.Обслуживание, хранение", "6.Вывод из эксплуатации"};
QMap<QString, QTreeWidgetItem> equipmentProceduresItems;
Фрагмент из mainwindow.cpp
void MainWindow::setUndersystems(){
ui->undersystemsTreeWidget->setHeaderHidden(true);
for (QString name:undersystems ) {
QTreeWidgetItem *item = new QTreeWidgetItem(ui->undersystemsTreeWidget);
item->setText(0, name);
item->setForeground(0, QBrush(colors.getThirdColor()));
item->setFont(0, QFont("System", 10));
undersystemsItems.insert(name, *item);
ui->undersystemsTreeWidget->addTopLevelItem(item);
}
setEquipmentUndersystemProcedures();
}
void MainWindow::setEquipmentUndersystemProcedures(){
for (QString name: equpmentProcedures) {
QTreeWidgetItem *item = new QTreeWidgetItem(undersystemsItems.value(undersystems[3] /*"4.Управление оборудованием"*/));
item->setText(0, name);
item->setFont(0, QFont("Arial", 8));
equipmentProceduresItems.insert(name, *item);
undersystemsItems.value(undersystems[3]).addChild(item);
}
}
Ответы (1 шт):
Автор решения: Nikita Sadovskiy
→ Ссылка
Требуемые изменения в mainwindow.h:
фрагмент из mainwindow.h
QList<QString> undersystems{"1.Документооборот(в разработке)", "2.Склад(в разработке)", "3.Закупки(в разработке)", "4.Управление оборудованием"};
QMap<QString, QTreeWidgetItem*> undersystemsItems;
QList<QString> equpmentProcedures{"1.Входной контроль", "2.Идентификация и учет", "3.Аттестация", "4.Эксплуатация", "5.Обслуживание, хранение", "6.Вывод из эксплуатации"};
QMap<QString, QTreeWidgetItem*> equipmentProceduresItems;