Qwidget窗口消失

2024-10-01 11:38:45 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧。。。这件事烦了我好几个小时了。我有一个带菜单栏的qtmain窗口。在一个独立的小工具上成功地连接了一个小工具。但一旦Qwidget出现,它就消失了。我使用的是最新版本的pyqt。在

代码如下:

Import sys
from PyQt4  import QtGui,  QtCore

Class Main(QtGui.QtMainWindow) :
         def __init__(self) :
               QtGui.QtMainWindow.__init__(self) 
               self.setGeometry(300,300,240,320) 
               self.show() 

               menubar  = self. menuBar() 

               filemenu = menubar. addMenu('&File') 

               new = QtGui.QAction(QtGui.QIcon('new.png'), 'New', self) 
               new.triggered.connect(self.pop) 
               filemenu.addAction(new) 

      def pop(self) :
            pop = Pop() 

class Pop(QtGui.QWidget) :
         def __init__(self) :
               QtGui.QWidget.__init__(self) 
              self.setGeometry(300,300,240,320>
              self.setWindowTitle('Pop up') 
             self.show() 

Tags: 工具selfnewinitdefshowpop小时
2条回答

如果您实现了这段代码,您将看到窗口被创建并立即消失。在

import sys
from PyQt5 import QtGui, QtWidgets,QtCore
from PyQt5.QtWidgets import QApplication, QMainWindow

app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setGeometry(50,50,500,500)
window.setWindowTitle("GUI window")
window.show()

为了解决这个问题,写下系统出口(应用程序执行_())“之后窗口.显示()窗口将保留在屏幕上。在

pop(self)方法更新为:

def pop(self):
    self.window = Pop()

您需要将新创建的窗口的对象存储在成员变量中,反之,一旦该方法执行完毕,局部变量将被Python垃圾收集器销毁。在

相关问题 更多 >