- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!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というサイトもあったけど,それだと実行ファイルが起動できなかった.
::とりあえず
たしかに簡単かも...
!おまたせ
してしまっている仕事を...