くろねこ日記

ソフトウェアに関する技術メモが多いです.

PyQTのデザイナから動作までのメモ

こんにちは

普段はCUIアプリケーションばかり作っていてもたまにはGUIを作りたくなることがあります.
そんなときにPyQtというのを利用することで簡単に作れましたので,書いておきます.
環境の想定はMacOSX山ライオンとなっております.

・インストール
PyQt
QTdesigner
Python(私の環境では2.7)

まずはPyQtのインストールから行いました.PyQTのインストールにはHomebrewを使用しました.
brew install pyqt
でインストールができると思います.
実はこれだけでpythonコードを叩けばいくらでもGUIアプリを作ることができます.
ただ,GUIのデザインだけはいちいち入力が面倒くさいので,デザインだけはWYSIWYGで作れるようにしました.
僕が使っているのはQtCreatorに付属されているQtDesignerです.
QtDesignerを導入するためにQtCreatorをmacにインストールする必要があります.
QtCreatorはここからダウンロード&インストールします
http://qt.digia.com/Product/Developer-Tools/
インストールし終わったらQtCreatorを起動します.
起動したらファイル→ファイル/プロジェクトの新規作成を選択します.
選択すると新規作成というウィンドウが立ち上がるのでQt GUI アプリケーションを選択します.
選択するといろいろな種類のアプリケーションが書かれているかと思いますが,
ここではQwidgetとしておきます.
名前とパスを聞かれるので適当な名前にして完了です.
デザインと書かれたアイコンをクリックすると,GUIのデザイナが立ち上がると思いますので,ボタンやラベルなどをフォーム上に並べていってください.
作成し終わりましたら,ファイル→入力した名前.uiを別名で保存
とありますので,.uiファイルの保存ディレクトリと名前(ここではForm.ui)を決めてください.

次に作成したuiファイルをpyuic4を使ってpythonに変換します.
まずはコマンドライン上でuiファイルのディレクトリまで移動します.
移動したらそこで
pyuic4 Form.ui -o Form.py
と入力すると作成したuiがpythonに変更されます.
変更したら,今度はデザインの中身を読み込むとともに実際に動かします.
ここではデザインの複雑さを考え,pythonのコードが走るためのファイルを別に生成します.
生成した名前をここではFormMain.pyとしておきます.
では実際に実装してみましょう.
FormMain.puの中身
1import sys
2 from PyQt4.QtGui import QApplication,QWidget
3
4 from Form import Ui_Form
5
6 if __name__=='__main__':
7 app=QApplication(sys.argv)
8 window=QWidget()
9 ui=Ui_Form()
10 ui.setupUi(window)
11
12 window.show()
13 sys.exit(app.exec_())

中身の解説ですが,
まずは
from PyQt4.QtGui import QApplication,QWidget
についてですが,この部分はQwidgetを使うためのライブラリを使うためです.
最後のQwidgetの部分はGUIデザイナで作成したものに依存しますので注意してください.
次に
from Form import Ui_Form
の部分ですがここで先ほど作成したpythonファイルを読み込んでます.
import Ui_Formと書いてあるのはclass名がUi_Formの場合のみです.
別な名前にした場合はそこを書き直す必要があります.
そのあとはアプリケーションの立ち上げやQWidgetを使うための設定などが入ってます.
とりあえずはこのまま実行すると作成したGUIが動作するはずです.

それでは