PySideTutorials Simple Dialog Japanese
日本語 English
PySideの簡単なダイアログアプリケーションの作成
このチュートリアルでは、基本的なウィジェットを持ったシンプルなダイアログの作り方を紹介します。ユーザーが自分の名前をQLineEditに入力し、QPushButtonのクリックで挨拶をするダイアログを作ります。
それではダイアログを作成して表示する簡単なプログラムから始めましょう。次のプログラムはチュートリアルを通して更新されていきますが、このままあなたのPySideプロジェクトに使ってもかまいません。
前回のチュートリアルに目を通しているなら、コードのほとんどはもう見慣れているでしょう。インポートやQApplicationの作成、そしてQtのメインループの実行は、これまでと変わりありません。ここで唯一目新しいのはクラス定義です。
PySideのウィジェットはサブクラス化することができます。この例ではQDialogをサブクラス化し、Formというカスタムダイアログを作ります。クラスには init() メソッドを実装し、このメソッドの中でQDialogの init() メソッドを呼び出して(superを使います)、親ウィジェットであるparentを渡します。もうひとつ新しいのはsetWindowTitle()です。このメソッドはダイアログウィンドウのタイトルを設定します。また main() ではFormオブジェクトの作成と表示を行います。
ウィジェットの作成
これから2つのウィジェットを作成します。ユーザーが名前を入力するQLineEditと、その内容を出力するためのQPushButtonです。 では、Formクラスの init() メソッドに次のコードを追加しましょう。
もうお分かりだとおもいますが、ウィジェットはコンストラクタで受け取ったテキストを表示します.
レイアウトの作成とウィジェットの整理
Qtにはアプリケーション上のウィジェットを整理するレイアウトがあります。ここではシンプルに、ウィジェットを垂直に配置するQVBoxLayoutを使います。 init() メソッドのウィジェット作成後に次のコードを追加します。
レイアウトを作成したらaddWidget()を使ってウィジェットを追加します。最後にFormのレイアウトとしてQVBoxLayoutを設定します。
挨拶メソッドの作成とボタンとの接続
仕上げにFormに機能を追加しましょう。一つはユーザに挨拶をするメソッド、もうひとつはボタンとメソッドとの接続です。このメソッドはFormの一部になるので init() メソッドの後に追加します。
このメソッドはpythonコンソールにQLineEditの内容を書き込みます。テキストはQLineEdit.text()メソッドで取り出します。
これで全て材料がそろいました。あとはQPushButtonとForm.greetings()メソッドとを接続するだけです。 init() メソッドに、次のように追加します。
プログラムを実行すると、QLineEditで名前が入力できるようになり、コンソール上に挨拶が表示されます。
やってみよう:
- 自分の名前をpythonコンソールに表示する代わりに、ポップアップメッセージボックスに表示できますか?QMessageBoxの詳しい解説は PySide オンラインリファレンス [pyside.org] をご覧ください。
- ウィンドウにアイコンを追加できますか? PySide オンラインリファレンス [pyside.org] でWidgetの説明を確認しましょう。
- 閉じるボタンを追加してはどうでしょうか?新しいボタンを作成してレイアウトに追加し、 exitスロットに接続します。
- QHBoxLayoutを使えばレイアウトを水平方向にできます! PySide オンラインリファレンス [pyside.org] で他のレイアウトチェックしましょう。とくにQHBoxLayout、 QGridLayoutなどです。
コード全体
このチュートリアルの完全なコードは次のとおりです。