!PySideでGUIアプリ 最近GUIアプリを作ると便利なんだろうなあというときが... Pythonで簡単に作れるよ,っていう話を聞いたので試してみた.ステップはこんな感じ. ちなみに,WindowsでのPythonのインストールは[[こんな感じで|Diary/2015-9-2]]. + QtDesignerでUIを作る + 対応するPythonなコードを書く + py2exeでexe化 ::参考 * [f-tools' blog: はじめての PySide with Qt Designer|http://blog.f-tools.jp/2012/02/pyside-with-qt-designer.html] ::QtDesignerでUIを作る コマンドプロンプトでも何でもいいので, C:\Python34\Lib\site-packages\PySide\designer.exe を起動.とりあえず,部品は直観的に置いておけばいい. {{ref_image designer_0.PNG}} 部品を置いたら,アクションイベントを追加する. メニューの"Edit"->"Edit Signals/Slots"を選択してアクションを追加するモードに変更. アクションを追加したいコンポーネントを選択してドラックすると アースマークみたいな線が引き出されるので,Dialogまでマウスで線をひっぱると 新しい接続関係が定義できる. {{ref_image designer_2.PNG}} マウスのボタンを離すと,"Configuration Connection"ダイアログが開くので ここでイベント(左)と呼びたいメソッド(右)の対応づけをする. 右ペインのEditを追加すると,好き勝手にメソッド名を決定できる. たとえば,↓は, {{ref_image designer_3.PNG}} pushButton_7のclicked()とDialogのinput7()を関連づけている. ↓全部接続を終えたところ. {{ref_image designer_4.PNG}} 画面の作成は,これでおしまい.作業ディレクトリを指定して保存する {{ref main.ui}} . ::対応するPythonなコードを書く desginer.exeで作った.uiなファイルをPythonコードに変換する. c:\Python34\Scripts\pyside-uic.exe -o main_ui.py main.ui とか.生成されたmain_ui.pyは普通にPythonコードなので, あとはこれを操作するスクリプトを書けばいい. たとえば,クラスのコンストラクタとmain部分的なものは"お決まり"な感じ. あとは,QtDesignerで追加したメソッドを粛々と実装していく {{ref test.py}} . import sys from PySide import QtCore, QtGui from main_ui import Ui_Dialog class CalcDialog(QtGui.QWidget): def __init__(self, parent=None): super(CalcDialog, self).__init__(parent) self.ui = Ui_Dialog() self.ui.setupUi(self) # ずらずらと,designerで追加したメソッドを実装 .... def input0(self): self.input_num(0) def input1(self): self.input_num(1) def input2(self): self.input_num(2) .... if __name__ == '__main__': app = QtGui.QApplication(sys.argv) dlg = CalcDialog() dlg.show() sys.exit(app.exec_()) 実装して,python test.pyとかすると,起動する.簡単. {{ref_image calc.PNG}} ::py2exeでexeにする このままでもいいのだけど,Windowsアプリ化しておくと人に渡すのが楽かもしれない. py2exeを使ってexe化する. py2exeをインストールしていなければ, pip install py2exe とかする. 作業ディレクトリに,py2exe用のスクリプト(setup.py)を用意して, from distutils.core import setup import py2exe from PySide import QtCore, QtGui from main_ui import Ui_Dialog py2exe_options = { "compressed": 1, "optimize": 2, "bundle_files": 3, } setup( options={"py2exe" : py2exe_options}, windows=[{"script" : "test.py"}], ) で, python setup.py py2exe で,作業ディレクトリの下にdistフォルダができて,その中に実行ファイルがある. bunlde_filesの値が1というサイトもあったけど,それだと実行ファイルが起動できなかった. ::とりあえず たしかに簡単かも... !おまたせ してしまっている仕事を...