如何访问主窗口的属性

时间:2015-06-22 14:43:22

标签: python

我正在编写一个程序,我想要外部函数来访问主窗口的属性。它必须是外部函数,因为它是由import方法提供的。我已经创建了一个非常小的MWE来了解问题。此处函数func应打印MainWindow' s vari的值。

class importedclass():
    def func(self):
        print(win.vari)

x=importedclass()

class MainWindow(QtGui.QWidget):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.vari = 1
        x.func()

def main():
    app = QtGui.QApplication(sys.argv)
    win = MainWindow()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

为了说清楚:importedclass类是我的修复类,我不允许更改MainWindow类中的任何内容!

1 个答案:

答案 0 :(得分:0)

因为每个人都需要另一个的实例,其中一个需要将自己传递给另一个。检查此示例解决方案是否完全解决了您的问题。

# file 1

class External():
    def func(self, win):
        print(win.vari)


# file 2

class MainWindow(QtGui.QWidget):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.vari = 1
        import External
        x = External()
        x.func(self)

def main():
    app = QtGui.QApplication(sys.argv)
    win = MainWindow()
    sys.exit(app.exec_())