====== PythonでGUIを試してみる。 ======
今回は、[[http://www.wxpython.org/|wxPython]]を使って、PythonでGUIを作成してみました。
[[http://www.wxpython.org/|wxPython]]を使うことで、簡単にGUI画面を作成できます。
ネタ本は、[[http://www.cutt.co.jp/book/978-4-87783-289-6.html|wxPython GUIプログラミング]]です。
Windowsだけでなく、OSに依存しないGUIを作るのにPythonを使うのはいいんじゃないでしょうか?
最終的には、水文水理解析のPython programをGUI環境で使うことを想定しています。
とりあえず、[[http://www.wxpython.org/|wxPython]]をinstallして動かしてみましょう。
===== wxPythonのinstall =====
Pythonは2.7.5を使います。
Pythonのinstallと設定は、[[http://blog.godo-tys.jp/2013/06/19/2465/|PythonでGeoSpatialをやってみる。[Chapter 1] ]]を参考にしてください。
次に、[[http://www.wxpython.org/|wxPython]]をinstallします。
[[http://www.wxpython.org/download.php|wsPython dpwnload]]から、今回は、**wxPython2.8-win32-unicode-py27.exe**をdawonloadして、installします。
これで、とりあえずはOKです。
===== 初めてのGUI =====
おきまりのhello worldをやってみます。
PyScripterを立ち上げて、以下のcodeを入力します。
#! C:¥Python27¥python.exe
# -*- coding: utf-8 -*-
import wx
def main():
app = wx.App()
frame = wx.Frame(None, -1, u'日本語でこんにちわ')
frame.Show()
app.MainLoop()
if __name__ == '__main__':
main()
**注意)上記codeで¥は全角ですので、半角にするかもしくは、バックスラッシュに置き換えてください。**
そして、編集->ファイルフォーマット->UTF-8に変更して、f:¥wxpython¥Hello_world_module1.pyで保存します。
code自身はいたって簡単ですね。
import wx
でmodule importします。
次に、
app = wx.App()
でobjectをinstanceします。
後は、frame objectをinstanceして、windowを表示させます。
最後に、
app.MainLoop()
でMainLoopの呼び出しを行い、eventのキャッチを行います。今回は、無限loopになっています。
保存後、実行すると、
{{http://blog.godo-tys.jp/wp-content/gallery/python_gui_01/image01.jpg}}
のようにwindowが表示されます。
簡単にGUIを作成することができました。
visual studioの環境のようなGUIもあるので、使い方次第ではOSに依存しないGUI環境を作れますね。
===== Python GUI 開発環境 =====
GUIの開発は、以下のアプリケーションがあります。好みものを使えば良いかと。
– [[http://boa-constructor.sourceforge.net/|boa constructor]] -> codeの補完機能をついたGUI Editor(2007年から更新stop)
– [[http://wxglade.sourceforge.net/|wxGlade]]
– [[http://sourceforge.net/projects/wxformbuilder/|wxFormBuilder]] -> これを使う予定。
– [[http://python.keicode.com/devenv/install-pydev.php|PyDev]] -> Eclipseのplugin GUI機能はない。
などあります。
===== 最後に =====
日本語での参考になる資料は、
– [[http://www.python-izm.com/contents/gui/wxpython.shtml|Python-izm]] -> お勧めです。
– [[http://labs.beatcraft.com/ja/index.php?Python%2FwxPython%A4%CB%A4%E8%A4%EBWindowsGUI%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0|Python/wxPythonによるWindowsGUIプログラミング]]
– [[http://python.keicode.com/advanced/wxpython-helloworld.php|Python入門]]
– [[http://www.atsuhiro-me.net/python/dev/py2exe|py2exeでwxpythonのGUIアプリケーションを作成]]
などなど、たくさんあります。
しかし、[[http://www.riverbankcomputing.co.uk/software/pyqt/intro|PyQt]]も捨てがたしですね。
このwxPythonですが、[[http://www.wxwidgets.org/|wxWidgets]]のラッパーで、PHPなどの別言語でも使えるという点が非常に興味があります。例えば、同じGUIで言語を変えることができるということですね。
参考として、
– [[http://wiki.wxphp.org/Introduction_to_using_wxPHP_Example|Introduction to using wxPHP Example]]
– [[http://www.wxwidgets.org/|wxWidgets]]
– [[http://up-cat.net/wxWidgets%A4%CE%A5%B9%A5%B9%A5%E1.html|wxWidgetsのススメ]]
などもあります。