0

正如标题所暗示的,当我创建一个按钮或一个用于结束程序的菜单选项时,窗口不会关闭。

所以我试图找出结束程序并同时关闭窗口。我一直在使用教程:

http://zetcode.com/tutorials/pyqt4/

否则很好。那么如何将按钮与结束和关闭小部件连接起来?

这是我一直在使用的一些示例代码(从教程中复制)。我似乎无法准确复制结局,但我认为这不是问题所在:

#!/usr/bin/python
# -*- coding: utf-8 -*-

"""
ZetCode PyQt4 tutorial 

This program creates a quit
button. When we press the button,
the application terminates. 

author: Jan Bodnar
website: zetcode.com 
last edited: October 2011
"""

import sys
from PyQt4 import QtGui, QtCore


class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):               

        qbtn = QtGui.QPushButton('Quit', self)
        qbtn.clicked.connect(QtCore.QCoreApplication.instance().quit)
        qbtn.resize(qbtn.sizeHint())
        qbtn.move(50, 50)       

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Quit button')    
        self.show()

def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

谢谢!

4

3 回答 3

1

该代码有效。我有同样的问题,但是在 IDLE 之外运行它可以工作。无需更改代码即可调用 QtGui 模块上的退出方法。

于 2012-08-29T21:41:31.417 回答
0

您的应用程序是 QtGui.QApplication,那么为什么要使用 QtCore.QCoreApplication 连接到退出信号?将其更改为QtGui.QApplication.instance().quit有效。

于 2012-06-27T21:42:58.373 回答
0

用 qbtn.clicked.connect(self.close)替换qbtn.clicked.connect(QtCore.QCoreApplication.instance().quit) 也遇到了同样的问题(试图从相同的 zetcode 教程中学习 Qt4)并来这里看看寻求解决方案

于 2015-10-14T09:15:50.023 回答