2. Hellow World

今回は、もっとも簡単なアプリケーションである「Hellow World」を作成していく。

Qt Creator の起動

Qt Creator のアイコンをクリックし、Qt Creator を起動する。


プロジェクトの作成

「File」メニューの「New Project…」を選択する。

以下のダイアログが表示されるので、「Application (Qt for Python)」の「Empty Application」を選択し、「Choose…」を押す。

「Name」に「2_Hellow_world」と入力し、「Browse..」ボタンで作成するディレクトリを指定する。

その後、「Next>」を押す。

特に問題が無い場合は「Next>」を押せば良いが、仮想環境を用いている場合はその環境のPythonを選択する必用がある。

特に変更する必要はないので「Finish」を押す。

以下の画面が表示されれば準備完了だ。


ダイアログの作成

「File」メニューの「New File…」を選択する。

「Qt」の「Qt Designer Form」を選択し、「Choose…」を押す。

「Dialog without Buttons」を選択し、「Next >」を押す。

ファイル名は「dialog.ui」のままで良いので「Next >」を押す。

変更する部分が無いので、「Finish」を押す。

場合によっては次のような警告が出るので「Yes to All」を押す。

すると空のダイアログが作成された。

ウィジェットの配置

このままでは味気が無いので、ラベルやボタンの配置などを行う。

ダイアログタイトルの変更

右下の部分をスクロールしていくと「windowTitle」とかかれた部分があるので「初めてのダイアログ」に変更しておく。

ラベルの配置

左下の部分をスクロールしていくと「Label」と書かれたモノがあるのでダイアログにドラッグ&ドロップする。

「Text label」と書かれたアイテムをダブルクリックし「Hellow World!」に変更する。

今度は「Push Button」をドラッグ&ドロップし、「閉じる」に変更しておく。

ダイアログの部分を右クリックしてメニューを表示させ「Lay out」の「Lay Out Vertically」(縦に並べる)を選択する。

これでダイアログは完成だ。保存しておこう。


シグナルとスロット

Qt ではイベントの処理は「シグナル/スロット」で行われる。

例えばボタンを押した場合は「clicked」シグナルが発生し、そのシグナルをスロット(関数やメゾット)が受信する事で処理を行う。

読んだだけでは何の事かよく判らないだろう。

だが心配する必要は無い。「Qt Designer」だけでも簡単な処理なら行えるからだ。

それで感覚を掴んで貰えば、実際にプログラミングをする時にも役立つと思う。

ウィジェット名の変更

右上にあるウィジェット一覧で名前を変更しておく。

「Dialog」を「my_Dialog」、「label」を「my_label」、「pushButton」を「my_pushButton」に変更する。

シグナル/スロットの設定

中央のしたにある「Signals and Slots editor」の「+」ボタンを押す。

そして一覧から該当するモノを選択する。

この例では、「my_pushButton」が「clicked()」(クリックされた)シグナルが発生した場合、「my_Dialog」の「close()」(ウインドウを閉じる)スロットで処理する事を表している。

この様に簡単な処理ならわざわざプログラミングする必要すらないのである。

これで Qt Designer でやる事は終わったので、「×」ボタンでクローズしてしまおう。


プログラムの変更

細かな説明は後で補足するとして、プログラムを次の様に変更して下さい。

保存して三角ボタンを押せば、プログラムが実行できる。

どうだろうか? 単純に表示するだけのプログラムだが、ウィジェット(部品)のデザインとプログラムを完全に分割できるのが PyQt の強みだ。

勿論複雑なプログラムの場合はシグナル/スロット処理を書く必要はあるのだが、凝ったデザインを利用できるなどの利点も多い。

補足

以下の方法をすればコマンドラインからプログラムを実行できます。(Linux & MacOS)

  • プログラムの一行目に「#!/usr/bin/env python」を追加する。
  • 「chmod +x main.py」を実行し、実行権を付与しておく。

「main.py」があるディレクトリで以下のコマンドを実行する。


詳細な説明など

PyQt の細かな説明は、「Qt for Python」で確認して下さい。


次回

3. Tool Button

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です