0
我在我的python gui應用程序中打開新窗口時出現問題。我有3個班級(首次登錄顯示,並且打開2個窗口)。這工作得很好:從python gui打開新窗口
class LoginDialog(QtGui.QDialog):
def __init__(self, parent = None):
super(LoginDialog, self).__init__(parent)
.....
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self, parent)
.....
class ImageViewerMainWindow(QtGui.QMainWindow):
def __init__(self, path, parent = None):
super(ImageViewerMainWindow, self).__init__(parent)
.....
if __name__ == "__main__":
qtApp = QtGui.QApplication(sys.argv)
loginDlg = LoginDialog()
if not loginDlg.exec_():
sys.exit(-1)
MyMainWindow = MainWindow()
MyMainWindow.show()
viewer = ImageViewerMainWindow("C:\image.jpg")
viewer.show()
sys.exit(qtApp.exec_())
我需要從主窗口執行瀏覽器,但是當我把它這樣,它只是閃爍並消失:
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self, parent)
.....
def DoOpenImageViewer(self):
viewer = ImageViewerMainWindow("C:\image.jpg")
viewer.show()
就是這樣,謝謝:) – Aleksandar
我已經使用了一個列表來存儲引用,如你所建議的,我還有一個問題:當MainWindow關閉時如何關閉所有打開的窗口?我已經在MainWindow類中像這樣退出函數: 'def DoQuit(self): self.DoLogout() QtGui.qApp.quit()' – Aleksandar
您可以遍歷列表並在每個窗口小部件上調用disposeLater,清除列表還應該處理所有窗口,因爲它們之前沒有保持打開狀態(至少如果沒有其他參考)。 – mata