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 モジュールで quit メソッドを呼び出すためにコードを変更する必要はありません。

于 2012-08-29T21:41:31.417 に答える
0

アプリはQtGui.QApplicationですが、なぜQtCore.QCoreApplicationを使用して終了シグナルに接続しているのですか?それを機能するように変更しQtGui.QApplication.instance().quitます。

于 2012-06-27T21:42:58.373 に答える