主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

IronPython: Hello WorldのGUIバージョン

                
 IronPythonでGUIに触れてみる。ここでGUIに触れる選択肢は2つ生まれる。一つはWindows Formで、もう一つはWPF(Windows Presentation Foundation)。Windows Formは古くからある分.NET Frameworkのバージョンへの互換性は高い。しかしWPFのほうが先進的な面を多く持っているだろう。そのあたりの詳しいことは『WPF VS. WindowsForm』でググれば見つかる(http://social.msdn.microsoft.com/Forums/en/wpf/thread/42636e55-a1e0-4b29-bbd1-cd8073585584)。ここではWPFを使う。


 IronPythonでGUIアプリを作る手始めとして、まずウィンドウを表示して、そこにお決まりの「Hello World!」を表示してみる。今回はPythonコードを1行も書く必要がない。統合開発環境の指示に従ってプロジェクトを新しく作って、XMLに似たものを一か所だけコピペするだけだ。Visual Studioやなにか統合開発環境に触れたことがあれば難なく終わりまでできるはず。


 さて。まずIronPythonをインストールする。
http://ironpython.net/

 次に統合開発環境が欲しい。VS2010も使うことができるが、SharpDevelopというのをここでは使う。これは.NET Frameworkに対応する開発環境でありIronPython以外にも、C#、C++、F#、Rubyなどでもプロジェクトがビルドできるようになっている。VS2010と比較すると、立ち上がりが軽いことや、EXEファイルを半自動で生成してくれる点で秀でている。
http://www.icsharpcode.net/OpenSource/SD/Default.aspx

 とても簡単なウィンドウを作ってみる。さっきインストールしたSharpDevelopを立ち上げて、『新しいソリューションを作成』を選ぶ。カテゴリはPythonで、『WPF Application』を選ぶ。ソリューション名などは適当につける。


 この時点で目的は半分以上達している。さきほどWPF Applicationを選んだので、SharpDevelopがそれに合わせて最低限のファイルを揃えてくれている。左のウィンドウでプロジェクトに関係するファイルが見られる。ここにApplication.py, Window1.py, Window1.xamlの三つがある。ここにすでに最低限のことが書かれているので、このままプロジェクトをビルドすれば、真っ白なウィンドウを表示してくれる。
120905_1.jpg

 ではGUIにHelloWorldと書かれたテキストボックスを足してみる。おそらく真ん中のテキストエディタになっている部分では、Window1.xamlが開かれているはずだ。ここのGridに"<TextBox>Hello world!</TextBox>"をネストする。以下のように。
120905_2.jpg

 あとは実行するだけだ。うえのデバッグメニューにある『実行』と『デバッガなしで実行』のどちらかを実行すればいい。『デバッガなしで実行』を選ぶと、エラー終了したときにコンソールを表示したままにしてくれる。白いウィンドウにHello World!と書かれたテキストボックスが表示される。これはテキストボックスなので、表示されている文を編集することができる。
1120905_3.jpg

 プロジェクトフォルダ内の"bin\debug"をのぞくと、EXEファイルとしてIronPythonで組んだスクリプトがコンパイルされている。依存関係のあるファイル(xamlやdllなど)をまとめれば、これでアプリケーションとして配布できる。
 今回はテキストボックスしか使っていないが、スクロールバーやボタン、画像を組み合わせることで様々なGUIアプリを作れる。


作ったアプリから配布用インストーラを作りたくなったら以下へ。
Windowsインストーラを作成する


120829_3.jpg



補足1
Pythonのスクリプトでは通常、以下のように書く。
if __name__ == "__main__":
EXEファイルにしたいIronPythonスクリプトではこれは書かない。これを書くと、実行ファイルにしたときに実行されなくなるので。

補足2
urllibやjsonなどのような、Pythonの標準モジュールを使いたい場合。pyファイルやXAMLファイルがあるプロジェクトディレクトリにLibというフォルダを作る。ここに使いたいモジュールのpyファイルをコピーする。SharpDevelopのProjectウィンドウ内で、右クリックメニューからLibフォルダを参照に追加する。Projectフォルダに表示されたpyファイルのビルドアクションがコンパイルになっているのを確認する。あとは実行するPythonスクリプトのトップに以下の二行を追加することで、Pythonスクリプトからも追加モジュールが見れるようにする。
import sys
sys.path.append('Lib')
130313.png

            

コメントの投稿

非公開コメント

プロフィール

hMatoba

Author:hMatoba
Github

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。