2017-01-04 27 views
0

私はちょうどポップアップして何かを言うメッセージボックスをコーディングしようとしていますが、それを閉じるための単一のボタンがありますが、ボックスの中のテキストが少々残っています。悪く見える。私はそれを削除する方法を知りたい。カスタムメッセージボックスの作成にも問題があります。チュートリアルこれは、カスタムメッセージボックスを作る方法であると言う:PyQt5のQMessageBoxからアイコンを削除するには?

box = QMessageBox() 
box.setText('text') 
box.addButton(QPushButton('Close', self)) 
box.exec_() 

しかし、これはちょうど私のプログラムを閉じて)1。私の現在のコードはQMessageBox(約メソッドを使用して返します。

box = QMessageBox().about(self, 'About', 'This is a test Program') 

しかし、これはテキストウィンドウの大きなアイコンを持っているので、プログラムを停止して再び1を返すので、ボックスに何もしないように見えます。

私はいくつかのまともなPyQtドキュメントが切望しています。 C++で書かれていない限り、私はドキュメントをほとんど見つけられないようです。例えば、QmessageBoxの質問やabout以外のオプションの情報は見つけられないようです。だから、誰かが適切なドキュメントがどこにあるのか私に教えてもらえれば、ここであまりにも多くの質問をするのを妨げるだろう。

答えて

1

Qtのドキュメントではなく、Qtのドキュメントを直接使う方が良い。言語の考え方をPythonからC++に切り替えるだけで済みます。それほど難しいことではありません。 :)例えばhttp://doc.qt.io/qt-4.8/qmessagebox.html#addButtonまたはhttp://doc.qt.io/qt-4.8/qmessagebox.html#aboutこれは非常に詳細なドキュメントで、他のほとんどのフレームワークと比較することはできません。

addButton()の3つの上書きがあることに注意してください。ドキュメントから、box.addButton(QPushButton('Close', self), QMessageBox.RejectRole)に2つの引数を渡す必要があるか(役割を忘れてしまったか)、標準ボタンを使用するオーバーライドを使用すると、1つの引数:box.addButton(QMessageBox.Close)を渡すだけです。

そして、あなたのためのもう一つのヒント:私はまた、それが簡単ためPyQtとは異なりPyQtよりPySideで私のプログラムをデバッグするために見つけ、PySideは、例外をキャッチしコンソールにプリントし、実行し続けます。 PyQtは通常、静かにクラッシュして、あなたを無駄にしています。たいていの場合、私はhttps://pypi.python.org/pypi/Qt.py/0.6.9またはqtpyhttps://pypi.python.org/pypi/QtPyを使用して、PyQtからPySideにオンザフライで切り替えることができます。また、Qt4Qt5バインディングを簡単に切り替えることもできます。

+0

それは私がC++をほとんど知っていないという問題です。私はそれを昔学習したことがありましたが、それほど遠くにはいません私もそれらの間の可能性のある相違について心配していた 右それは素晴らしいですが、私のテキストとボタンが今すぐボックス内に整列されるように思われる役割で動作します。彼らの位置を変える方法は何ですか? アイコンは組み込みの質問などから削除できませんか? –

+0

しかし、そのドキュメントを理解するためにC++は必要ありません。 '::'を '.'で置き換えれば、それだけです。 :)ドキュメントによると、アプリケーションアイコンや親ウィンドウアイコンを変更しない限り、メッセージボックスのアイコンを変更することはできないようです。独自のアプリケーションアイコンを作成した場合は、それより小さいバージョン(128x128ピクセルなど)を使用するだけで済みます。個人的には、aboutボックスにアプリケーションのロゴを入れてもいいと思う。 –

+3

sys.excepthookを設定することで、PyQtで例外を簡単にトラップできます。しかし、VKについては、ドキュメントを理解するためにC++を知る必要はないことに同意します。すべてのクラス、関数、およびargの名前は同じです。タイプを無視するだけです。これらの例は翻訳するのが少し難しい傾向にありますが、PyqtにはC++からPythonに翻訳されたたくさんの例があります。 – Schollii

関連する問題