显示 QtGui.QMainWindow 对象,之后不退出脚本



我写了一个继承自QtGui.QMainWindow(python/pyqt(的对象。它显示图像并给我更多的控件。我想将此对象用作在脚本流程中绘制图形的附加方法(如 plt.show(((

问题是显示此对象涉及如下代码:

app = QtGui.QApplication(sys.argv)
mainWin = ImageViewerWindow(result) #ImageViewerWindow inherits from QtGui.QMainWindow
mainWin.show()
app.exec_()

关闭"应用程序"后,我无法显示其他窗口。有没有办法显示此窗口,等待它关闭,然后在不显式使用信号的情况下显示另一个窗口?

(信号可以在幕后使用,但我不想使想要用最少数量的命令显示图像的用户复杂化(

可能是最简单的方法,另一种方法是在窗口中捕获关闭事件。

    app = QtGui.QApplication(sys.argv)
    mainWin = ImageViewerWindow(result) #ImageViewerWindow inherits from QtGui.QMainWindow
    mainWin.show()
    differentWindow = dW()  # your other window
    app.aboutToQuit.connect(lambda: differentWindow.show())
    app.exec_() 

另一种方法是将 closeEvent 方法添加到窗口类中

class ImageViewerWindow(...): # or QMainWindow
    ...
    def closeEvent(self, event):
        differentWindow = dW()  # your other window
        differentWindow.show()

最新更新