我为MAYA制作了一种工具。
一旦我打电话给班级并制作一个实例,我就不必再打电话了。
相反,我必须检查窗口是否存在。
实际上,当我按下按钮来调用close()
或“X”按钮时,它不会调用__del()__
方法。我无法清理我的作品。
所以,我打算检查实例是否存在,如果是,我不调用类,只需调用show()
。
但是,我找不到方法。
_win = RigControlWindow()
_win.show()
RigControlWindow
类如何找到实例?
答案 0 :(得分:4)
将RigControlWindow
实例的引用保留为主窗口的私有属性。
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self._rcwin = None
def showRigControlWindow(self):
if self._rcwin is None:
self._rcwin = RigControlWindow()
self._rcwin.show()
或者,您可以使用属性:
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self._rcwin = None
@property
def rcwin(self):
if self._rcwin is None:
self._rcwin = RigControlWindow()
return self._rcwin
def showRigControlWindow(self):
self.rcwin.show()
答案 1 :(得分:1)
ekhumoro答案的替代方案是在这样的模块中使用函数:
def startGui():
if 'myWindows' in globals():
global myWindows
myWindows.show()
else:
global myWindows
myWindows = init_gui.MainWindow(parent=init_gui.MyMainWindow())
myWindows.show()
然后从架子脚本调用startGui,如下所示:
if __name__ == '__main__':
startGui()