私は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()
GUI で [X] ボタンまたは [終了] ボタンを押すと、コンソールに次のエラーが表示されました。
Python 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
Traceback (most recent call last):
File "D:\Raymond\Programming Practice\python\gui_qt\lesson1_basic\gui_quit.py", line 46, in <module>
main()
File "D:\Raymond\Programming Practice\python\gui_qt\lesson1_basic\gui_quit.py", line 42, in main
sys.exit(app.exec())
SystemExit: 0
行を置き換えてコードを修正しました
sys.exit(app.exec())
この行で:
return app.exec()
その後、アプリケーションは正常に終了します。ただし、ステータスを返すだけなので、このメソッドに欠点があるかどうかはわかりません。