在 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)
...
