我正在编写一个程序,我想要外部函数来访问主窗口的属性。它必须是外部函数,因为它是由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
类中的任何内容!
答案 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_())