Форум сайта python.su
Имеется QTreeWidgetdblf:
+Вид 1:
++ Группа 1
+++ Представитель 1
+++ Представитель 2
+++ …
+++ Представитель X
++ Группа 2
++ …
++ Группа N
+ Вид 2:
+ Вид 3:
+ …
+ Вид Z
Виды ограничены и создаются командой:
self.Vid1 = QTreeWidgetItem(self.treeWidget)
self.Vid1.setText(0, ‘Вид_1’)
self.treeWidget.addTopLevelItem(self.Vd1)
т.е. я всегда могу найти их Item по “self.VidZ”
Группы хранятся в словаре и могут меняться пользователем, поэтому их добавляю функцией
def createChildGroup(self, perent, id):
self.treeWidget.addTopLevelItem(QTreeWidgetItem(perent).setText(0, id))
где в “perent” подставляю “self.Vid_Z”.
Как мне теперь пробежаться по названиям “Группа_N”, что бы определить в какую из них каких добавить представителей?
Добавлять на этапе создания Групп не вариант. Необходим цикл, для последующей переборки Представителей и редактировании поля .setText и цвета надписи в зависимости от условий. Пытался через findItem(text, flags), но уперся в ошибку флага, которую никак не смог решить.
Заранее благодарен.
Отредактировано bhbirf1985 (Ноя. 8, 2021 18:15:53)
Офлайн
У тебя должна быть структура в виде списка списков, по которой строится дерево в Qt. Сначала ты по этой структуре строишь дерево в Qt. А потом ты в этой структуре ищешь нужные поля. Когда поле найдено, его координаты в дереве известны, и таким образом можно напрямую обратиться к элементу в дереве Qt.
А искать что-то в уже построенном дереве - это глупость на уровне школоты. Это как из слишком сладкого пирога пытаться сахар отсыпать обратно. Так вот, лучше той дуре, которая туда сахара столько насыпала, рецепт подкорректировать на будущее, а не искать секретные формулы того гидролиза, который поможет бороться с дуростью этой дуры.
Отредактировано py.user.next (Ноя. 8, 2021 21:32:43)
Офлайн