IronPythonメモ - GUI
SOU1さんは日曜プログラマかつ超絶頭悪い人なのでごくごく初歩的な事をメモっていきますが特にキニシナイで下さい。
IronPythonで手始めに簡単なツールを作ろうと思った場合、画面を設計するのにどういった手段が使えるのか、といった点について。
・System.Windows.Formsを利用する
Form()で窓を生成し、System.Windows.Forms.Application.Run(form)でイベントループさせる奴です。
System.Windows.Forms以下にある各種コントロールを利用出来ます。
IronPythonを紹介している各種Webサイト/blog等や教本等でもまずお手本として紹介している手段でしょう。情報が豊富で簡単によく見るタイプのWindows GUIアプリケーションを作成出来ます。
・Windows Presentation Framework(System.Windows.Controls)を利用する
WPFとかAvalonとか呼ばれる奴です。
Window()で窓を生成し、System.Windows.Application.Run(window)でイベントループさせます。
WPFを利用すると動作環境に.NET Framework 3.0が必要になります。
内部的にはDirect3Dを利用していて高度なグラフィクス処理もGPUで高速化されます。
またXAMLを利用する事でロジックとインターフェースを完全に切り離すことが出来ます。
・ctypes経由でuser32.dllのCreateWindowExをry
いやさすがに無いでしょうこれは……・д・
「俺は今ぷろぐらみんぐをしている!!!」ていう気分に浸りたい方に最適かもしれません。超迂回ルート。
結局どれを選べば良いかというと、
・バッチ処理的な「とりあえず」プロジェクトであればWindows.Formsがサンプルも多いし慣れていれば早いかもしれない
・「リッチで最先端なGUIを」という場合はWPFを利用してベクタグラフィクスによるUIを堪能
てな感じで良いんじゃないでしょうか。
なに、WPFのサンプルが全然足りない?
とりあえずC#のサンプル探して「usingをimportに」「newとか型宣言を全部削除」してみ。気がついたらIronPythonで動いてるから。マジマジ。
これだからIronPythonやめらんない・д・
シスアド業でサラリーマンの傍ら作曲等を行うマルチタスクの申し子。