Найти - Пользователи
Полная версия: Pyton, PyQt5 - QTreeWidget. Как перебрать дерево по элементам всех уровней и/или как найти Item по тексту (установленному .setText)?
Начало » GUI » Pyton, PyQt5 - QTreeWidget. Как перебрать дерево по элементам всех уровней и/или как найти Item по тексту (установленному .setText)?
1
bhbirf1985
Имеется 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), но уперся в ошибку флага, которую никак не смог решить.
Заранее благодарен.
py.user.next
У тебя должна быть структура в виде списка списков, по которой строится дерево в Qt. Сначала ты по этой структуре строишь дерево в Qt. А потом ты в этой структуре ищешь нужные поля. Когда поле найдено, его координаты в дереве известны, и таким образом можно напрямую обратиться к элементу в дереве Qt.

А искать что-то в уже построенном дереве - это глупость на уровне школоты. Это как из слишком сладкого пирога пытаться сахар отсыпать обратно. Так вот, лучше той дуре, которая туда сахара столько насыпала, рецепт подкорректировать на будущее, а не искать секретные формулы того гидролиза, который поможет бороться с дуростью этой дуры.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB