Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Pyton, PyQt5 - QTreeWidget. Как перебрать дерево по элементам всех уровней и/или как найти Item по тексту (установленному .setText)? [RSS Feed]

#1 Ноя. 8, 2021 18:13:56

bhbirf1985
Зарегистрирован: 2021-11-07
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Pyton, PyQt5 - QTreeWidget. Как перебрать дерево по элементам всех уровней и/или как найти Item по тексту (установленному .setText)?

Имеется 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)

Офлайн

#2 Ноя. 8, 2021 21:31:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Pyton, PyQt5 - QTreeWidget. Как перебрать дерево по элементам всех уровней и/или как найти Item по тексту (установленному .setText)?

У тебя должна быть структура в виде списка списков, по которой строится дерево в Qt. Сначала ты по этой структуре строишь дерево в Qt. А потом ты в этой структуре ищешь нужные поля. Когда поле найдено, его координаты в дереве известны, и таким образом можно напрямую обратиться к элементу в дереве Qt.

А искать что-то в уже построенном дереве - это глупость на уровне школоты. Это как из слишком сладкого пирога пытаться сахар отсыпать обратно. Так вот, лучше той дуре, которая туда сахара столько насыпала, рецепт подкорректировать на будущее, а не искать секретные формулы того гидролиза, который поможет бороться с дуростью этой дуры.



Отредактировано py.user.next (Ноя. 8, 2021 21:32:43)

Офлайн

  • Начало
  • » GUI
  • » Pyton, PyQt5 - QTreeWidget. Как перебрать дерево по элементам всех уровней и/или как найти Item по тексту (установленному .setText)?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version