Skip to main content
 首页 » 编程设计

python之PyQt 窗口不显示

2025年05月04日17Leo_wl

在 simple 上调用 show 方法时,简单窗口不显示。为什么我的简单窗口不显示。 :(

import sys 
from PyQt4 import QtGui 
 
 
class Widget(QtGui.QWidget): 
 
    def __init__(self): 
        super(Widget, self).__init__() 
        simple = Simple() 
 
        button = QtGui.QPushButton("Button", self) 
        button.clicked.connect(simple.show) 
        self.show() 
 
 
class Simple(QtGui.QWidget): 
 
    def __init__(self): 
        super(Simple, self).__init__() 
        self.setGeometry(300, 250, 250, 150) 
        self.setWindowTitle("Simple Widget") 
 
 
if __name__ =="__main__": 
    app = QtGui.QApplication(sys.argv) 
    widget = Widget() 
    sys.exit(app.exec_()) 

请帮忙!

请您参考如下方法:

你的代码的问题是, __init__ 类 Widget 方法中的 simple 是一个局部变量,所以一旦 __init__方法执行完毕,simple对象被pythonGarbage Collector销毁,因此窗口不出现,因为对象不存在内存。要解决您的问题,只需在 simple 变量的开头添加 self 使其成为成员变量即可。

... 
self.simple = Simple() 
button = QtGui.QPushButton("Button", self) 
button.clicked.connect(self.simple.show) 
...