Я провел много исследований, но пока не смог найти никого с этой конкретной проблемой. Очень извиняюсь, если такая тема уже была, но не нашла.
Что я пытаюсь сделать, так это найти QLabel в QGridLayout, импортировав файл .txt и прочитав имена и значения. Например: power 5
Теперь мне нужно найти QLabel с именем "power_fw", чтобы установить текст этой метки на "5".
set_value("power 5")
def set_value(talent):
list_value = talent.split(" ") # Now i have a list with talent[0] = "power" and its value at talent[1] = "5"
talent_now = talent[0] + "_fw" # I already have the exact name of the QLabel i am trying to find, which would be "power_fw" at this moment
ui.talent_now.setText(talent[1]) # So the idea is that "talent_now" is a string whichs value is the name of the QLabel i am trying to set a new text. Obviously it does not work, because talent_now is not a QLabel but just its name.
Я надеюсь, что кто-то может помочь мне с этой конкретной проблемой, и еще раз, извините, если эта тема уже каким-то образом существует. Я не мог найти ничего, что сработало еще.
темы, которые я нашел интересными в контексте этой проблемы:
получить виджеты по имени из макета
findChild для объекта, созданного в конструкторе pyqt
Ни одно из решений, представленных в этих темах, не помогло мне сделать это правильно.
self.ui.findChild(QLabel, talent_now).setText(talent[1])
не работает? - person p-a-o-l-o   schedule 21.03.2019self
в качестве параметра (def set_value(self, talent):
) и экземпляра пользовательского интерфейса (self.ui.talent_now...
). Как вы это написали, ваша функцияset_value
находится в глобальной области (таким образом, ожидая, чтоui
будет эквивалентноApp.ui
или всему, что вы решите назвать своим экземпляром пользовательского интерфейса), и вы вызываете ее перед ее определением. Это то, как вы пытаетесь запустить свой код? - person jfaccioni   schedule 21.03.2019