Gui Разработка с Python и PyQt5, возможно ли использовать переменную для управления виджетом? - PullRequest
0 голосов
/ 30 апреля 2020

Я долго искал эту проблему, я до сих пор не знаю, возможно ли это вообще. Я хотел бы использовать переменную для управления виджетом. например, я хотел бы сделать это:

self.ui.label1.setText('hello')  

, но используя переменную, например строку, скажем:

string = 'label1'
self.ui.string.setText('hello')  #this obviously doesn't work. ui doesn't recognize a string object.

Существует ли какое-либо решение этой проблемы? Спасибо всем!

1 Ответ

1 голос
/ 30 апреля 2020

Я думаю, есть много способов достичь того, что, как я понимаю, вы хотели бы. Вот два:

Хранение меток в словаре

labels = {
    'label1': self.ui.label1,
    'label2': self.ui.label2,
...
}


...

label = 'label1'

labels[label].setText('hello')

Использование getattr ()

...

label = 'label1'

getattr(self.ui, label).setText('hello')

Это работает, только если метки являются атрибутами self.ui

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...