如何从PyQt5代码继承实例的属性

时间:2019-02-05 19:46:58

标签: python oop pyqt5 python-3.7

我正在尝试使用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'

1 个答案:

答案 0 :(得分:0)

我想从您的问题中“从外部访问”是指“通过导入”。如果您使用

这样的“导入保护”语句导入模块
if __name__ == "__main__":

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

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