Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。444件0python3.5を使っています。pyqt5を使ってサブウィンドウからメッセージボックスを開きたいです。下が書いたコードです。sys.exit(app.exec_())サブウィンドウで入力されたものが数値でなかった時にメッセージボックスが出るように書いたつもりです。メッセージボックスは表示されず、動作を中止してしまいます。票0コードを書き換えた結果こうなりました。QtWidgets#自分のコードスタイルでは、出自を明らかにしています。全部QtWidgetsをつけています。QtGuiとQtCoreは全く使っていないので削除しました。main()わたしの環境で動くように変更したうえで、このようなエラーが発生しました。'SubWindow'つまり、QMessageBoxの第一引数を、self.parentと改めれば、コードが動くようになりました。この第一引数には、ウィジェットが入らなければなりません。エラーメッセージにもそのように書いてありますね。PySideですが、こちらを参照。QtGui.QMessageBox.about-SubWindowクラスは、何らウィジェット系のクラスを継承していませんから、selfをそのまま指定すると、ウィジェットではないものが第一引数に入れられてしまっているのです。そのため、self.parentと改めて、ウィジェット系のコードを入れれば治りました。個の銅バッジ回答、及び詳しい解説ありがとうございます!質問とは関係ないですが一つ聞きたいことがあります。pyqtを使っていてエラーメッセージが出ず、GUIの動作が停止してしまうことが悩みの種です。8:19私もがちゃがちゃ色々やって根本的な原因がわからないのですが、まずは、1.何のエディタを使っているのか。2.QtWidgets.QApplicationは、どうやら一度コードを実行すると、GUIを閉じたとしても、ずっとコンピューター内部では走っているようです。active.とかいうエラーが私は出て、ここで動作が停止します。(始めたては、一度実行するごとに、エディタまで落とさなければならなかった。PyQt導入サイトなどでは、これなしでいくらでも動くかのように書いてあり、私だけだと思っていました。)だから、私のコードを見ていただければわかるのですが、try文でエラーを回避しています。最後に、それらをやったうえで上記のようなエラーが出るかどうかですが、上の二つ次第で、エラーが発生する環境が整ったという可能性もあり、確かなことは言えません。私と同じように書いて試してみていただけたらいいかと思います。私もこれはものの本を読んだのをまねて書いたのであり、どうしてこうなるのかをわかっているわけではありません。ちなみに、私はpython3.6,AnacondaのSpyderエディタを利用しています。traceback.と表示されてエラーは表示されませんでした。3.6にアップデートしてからもう一度やってみます。9:04それは普通にGUIを落として実行をやめたときにでるメッセージです。activeというエラーが出て、2度目以降の実行ができなくなります。できたらならいいんじゃないでしょうか。問題は、QMessageBox.about()のエラーをわざと出してみて、出てくれるかどうかですね。そちらのエラーを出してみたいと思われているようですから。9:15仰る通り、try文でエラー表示をプリントさせて、かつわざとエラーを発生させていますが、エラー文は表示されないですね。何はともあれしっかり動作するようになったので感謝です。回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。