【问题标题】:How to inherit attributes of instance from PyQt5 code如何从 PyQt5 代码中继承实例的属性
【发布时间】:2019-02-05 19:46:57
【问题描述】:

我正在尝试使用 PyQt5 创建一个 GUI。我有一个带有函数的外部脚本,可以更改屏幕上的值。但是我无法从外部访问 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'

【问题讨论】:

  • 请发布一个示例来说明您的问题。

标签: python oop pyqt5 python-3.7


【解决方案1】:

根据您的问题,我认为“从外部访问”是指“通过导入”。如果您使用“导入保护”语句导入模块,例如

if __name__ == "__main__":

此块内的代码不运行。它仅在您直接执行模块时运行,而不是通过导入运行。这就是为什么其他模块看不到MainWindow

如果那是您的主应用程序窗口,您可能应该反过来进行导入。主应用导入其他模块并调用它们,最终将主窗口或其他对象作为参数传递。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 2010-11-08
    • 2017-12-18
    • 1970-01-01
    相关资源
    最近更新 更多