私が取り組んでいるプロジェクトのために PySide を学ぼうとしています。Zetcodeのチュートリアルに取り組んでいますが、最初から問題が発生しています。Enthought の Canopy を使用してコードを作成し、実行しています。コマンドラインからコードを実行すると、正常に動作します。 この質問は私の問題に関連している可能性がありますが、回答はありません。
チュートリアルの最も単純なコードを使用する場合
import sys
from PySide import QtGui
wid = QtGui.QWidget()
wid.resize(250, 150)
wid.setWindowTitle('Simple')
wid.show()
すべてが正しく実行されます。次の例は、OOP の観点を除いて、ほぼ同じことを行います。
import sys
from PySide import QtGui
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Icon')
self.setWindowIcon(QtGui.QIcon('web.png'))
self.show()
def main():
ex = Example()
if __name__ == '__main__':
main()
プログラムを実行すると、プログラムが点滅し (ウィンドウが一瞬表示されます)、閉じます。の終了前に例外を発生main()
させると、ウィンドウが画面に表示されたままになります。
TL;DR
プログラムをクラスに入れると、なぜ機能しないのですか?