PyQt4:检查窗口是否存在
问题描述:
我为MAYA做了一种工具。 一旦我调用这个类并创建一个实例,我就不必再调用它了。 相反,我必须检查窗口是否存在。 实际上,当我按下一个按钮来呼叫close()
或“X”按钮时,它不会调用__del()__
方法。我无法清理我的作品。PyQt4:检查窗口是否存在
那么,我打算检查一下这个实例是否存在,如果是这样,我就不要调用class,只需拨打show()
即可。 但是,我找不到方法。
_win = RigControlWindow()
_win.show()
RigControlWindow
类如何找到实例存在?
答
保留对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()
答
的替代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()