Как наследовать атрибуты экземпляра из кода PyQt5 - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь создать графический интерфейс с использованием PyQt5.У меня есть внешний скрипт с функциями, чтобы изменить значения на экране.Однако я не могу получить доступ к атрибутам объекта Qt извне.

В моем внешнем сценарии я попытался:

Main.MainWindow.label_55...
Main.ui.label_55...

и множестве других вариантов

* Main - это имяфайла PyQT5.py

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

Ошибка:

AttributeError: module 'Main' has no attribute 'MainWindow'

1 Ответ

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

Исходя из вашего вопроса, я полагаю, что «доступ извне» означает «импорт».Если вы импортируете модуль с оператором «import import», например

if __name__ == "__main__":

, код внутри этого блока не запускается.Он запускается только при непосредственном запуске модуля, а не через импорт.Вот почему другой модуль не видит MainWindow.

Если это ваше главное окно приложения, вы, вероятно, должны выполнить импорт наоборот.Основное приложение импортирует другие модули и вызывает их, в конечном итоге передавая главное окно или другие объекты в качестве параметров.

...