Поиск переменных в Ui_Form на основе подстроки - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть Ui_Form от QtDesigner, который содержит имена переменных, такие как:

self.ui.alphabetic_menu_QLabel_A
...
self.ui.alphabetic_menu_QLabel_Z
self.ui.label
...
self.ui.label_10

Я вижу, что Ui_Form не повторяется.Есть ли хороший способ Python для извлечения всех экземпляров в список имен переменных, содержащих указанную подстроку (например, alphabetic_menu_QLabel)?

1 Ответ

0 голосов
/ 27 февраля 2019

Я не знаю QtDesigner, но если вы имеете дело с экземпляром Python, это можно сделать с помощью встроенного метода dir () .

dir(yourform.ui) возвращаетсписок всех имен атрибутов.Из вашего примера, я думаю, вы должны получить что-то похожее на: ['alphabetic_menu_QLabel_A', ..., 'alphabetic_menu_QLabel_Z', 'label', ..., 'label_10', ...].

Будьте осторожны, потому что dir() возвращает и другие вещи.Из документов:

список содержит имена атрибутов объекта, имена атрибутов его класса и рекурсивные атрибуты базовых классов его класса.

Итаквам нужно отфильтровать список.Если вас интересуют атрибуты, содержащие только данную подстроку, вы можете использовать понимание списка.

mysubstr = 'alphabetic_menu_QLabel'
myattributes = [att for att in dir(yourform.ui) if mysubstr in att]
...