質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

333閲覧

pyqt5が思うように動いてくれない

uc200

総合スコア32

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2017/10/23 12:16

pyqt5の勉強中です。コードの例として次の様なものがありました。これを実行するとボタンを押すと画面が閉じるGUIができるそうなのですが、ボタンを押しても何も起きません。どこが間違っているのでしょうか?

python3

1import sys 2from PyQt5.QtWidgets import QWidget, QPushButton, QApplication 3from PyQt5.QtCore import QCoreApplication 4 5 6class Example(QWidget): 7 8 def __init__(self): 9 super().__init__() 10 11 self.initUI() 12 13 def initUI(self): 14 15 # QPushButtonの第一引数はラベル 16 # QPushButtonの第二引数は親ウィジェット(QWidgetに継承されたExampleウィジェット) 17 qbtn = QPushButton('Quit', self) 18 # Quitボタンをクリックしたら画面を閉じる 19 qbtn.clicked.connect(QCoreApplication.instance().quit) 20 qbtn.resize(qbtn.sizeHint()) 21 qbtn.move(50, 50) 22 23 self.setGeometry(300, 300, 250, 150) 24 self.setWindowTitle('Quit button') 25 self.show() 26 27if __name__ == '__main__': 28 29 app = QApplication(sys.argv) 30 ex = Example() 31 sys.exit(app.exec_())

どなたか分かる方ご教授お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tell_k

2017/10/23 12:26

私の手元のmacOS で上記コードを試してみましたが、 Quitボタンを押したらWindowは閉じました。
LouiS0616

2017/10/23 16:04

Windows10でも同様です。
uc200

2017/10/26 11:45

希望が持てました!もう少し頑張ってみます!
guest

回答1

0

Pythonインタプリタを-iオプション付きで実行していないでしょうか?
Win10コマンドプロンプト上で似た現象が再現しました。

  1. python -i hoge.pyを実行すると、ウインドウが表示される。
  2. [Quit]ボタンを押すと~SystemExit: 0 まで表示され、インタラクティブ入力モードになる(>>>)がウインドウは残っている。
  3. インタラクティブモード上でexit()を実行すると、ウインドウは閉じてコマンドプロンプトに戻る。
c:\dir>python -i hoge.py '1 Traceback (most recent call last): '2 File "temp.py", line 32, in <module> sys.exit(app.exec_()) SystemExit: 0 >>> exit() '3 c:\dir>

投稿2017/10/26 01:00

編集2017/10/26 01:02
can110

総合スコア38262

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uc200

2017/10/26 11:52

回答ありがとうございます! 確かに[Quit]ボタンを押すとインタラクティブ入力モードに入っているように見えます。 ですが改善の仕方がよく分かりません・・ その「-iオプション」というものも調べてみてもよく分かりません OSはWindows8.1,プログラムの実行にはIDLEを用いています。
can110

2017/10/27 00:23

IDLEにてファイルを開き「Run module」でも再現しますね。 ソース側の問題ではなく、実行環境(方法)による制限と思います。 コマンドプロンプト上で「python hoge.py」で実行させると閉じるようになります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問