ふにゃるんv2

もとは、http://d.hatena.ne.jp/Wacky/

VisualWxで、手軽にHTMLブラウザを作ろう

暫く前から欲しい開発環境ってのがあって、「GUIアプリケーションを簡単に作る環境が欲しいよ」があります。


何で欲しいかというと、

  • 仕事とか趣味で、ちょっとしたツールが欲しい需要がある。
  • Windows環境をメインにしているのと、仕事仲間に配布したいので、GUIアプリケーションにしたい。
  • 開発に時間をかけたくない。

こんな事情がある訳です。


そんな訳で、Pythonを使って簡単にGUIアプリを作れないかな?と妄想する訳です。

紹介

…前置きが長くなってしまいましたが、最近、VisualWx(http://visualwx.altervista.org/indexit.php)がアップデートされたらしく、0.87.0.1になっていました。
早速 入れてみます。
01
01 posted from フォト蔵

何か、画面変わってますね。


「File」→「New Project」とするとプロジェクト一覧が出ます。
02
02 posted from フォト蔵


何か、色々増えてます。
C++, Python, Ruby, Lua…。Luaかぁ。


さて、ここでは
一番簡単そうな、「WX_DLG_Python」を選びます。
03
03 posted from フォト蔵


この状態で、早速動かす事が出来ます。
ほらね。
04
04 posted from フォト蔵

作ってみましょう

では、VisualWxを使って簡単なアプリケーションを作ってみます。
ここでは、簡単なHTMLブラウザを作ってみます。

まず、URLを入力するエディットボックスを、ぽちっとな。
05
05 posted from フォト蔵

次は、URLを入力した後、移動する為のボタンを、ぽちっとな。
06
06 posted from フォト蔵

最後に、HTMLを描画するコンポーネントを、ぽちっとな。
07
07 posted from フォト蔵

この時点で、以下のように3つのコンポーネントがダイアログボックス上に並んでいます。
08
08 posted from フォト蔵

これらを適当にレイアウトしちゃいましょう。
09
09 posted from フォト蔵
レイアウトは、VBDelphiの感覚で出来ちゃいますんで、楽です。


次は、各コンポーネントの名称をプロパティエディタで修正します。

  • エディットボックス
    • Name:edtURL
    • Text:"http://"
  • ボタン

プロパティの変更は、プロパティウィンドウ上でダブルクリックして修正すればOKです。
10
10 posted from フォト蔵


次は、ボタン(btnGO)をクリックすると、エディットボックス(edtURL)のURLに移動・描画させるようにしましょう。
ボタン(btnGO)を選択し、プロパティウィンドウの「Events」をクリックするとイベントタブが表示されます。
そこで、「E」を選択すると、「EVT_BUTTON」イベントが表示されます。
そこで、チェックボックスにチェックを入れます。
11
11 posted from フォト蔵

その後、中央のウィンドウの「Python」を選択すると、ダイアログのコードウィンドウが現れます。
すると、さっきの「EVT_BUTTON」イベントに該当する箇所のコードテンプレートが挿入されています。
(VBDelphiみたく、ダブルクリックでコードウィンドウに移動…という事はありません。ちょっと残念)
12
12 posted from フォト蔵

ここで、エディットボックス(edtURL)のテキスト値をURLとして、HTMLコントロール(htmlCtrl)に移動・描画させてみます。
以下のコードを追加します。
(追加するのは、"add your code here"の下の3行です)

#[win]add your code here
    def btnGO_VwXEvOnButtonClick(self,event): #init function
        #[3d6]Code event VwX...Don't modify[3d6]#
        #add your code here
        url = self.edtURL.GetValue()
        print url
        self.htmlCtrl.LoadPage(url)
        return #end function

13
13 posted from フォト蔵


早速実行してみましょう。
14
14 posted from フォト蔵
ここで、"http://www.google.co.jp/"と入力して、「移動」ボタンをクリックします。暫くすると、
15
15 posted from フォト蔵
と画面が表示されます。やった。

まとめ

  • VisualWxを使うと、何ちゃってなGUIアプリを作る事が出来ます。
  • イベントとプロパティを弄りながら、イベントドリブンなプログラムが出来ます。
  • ダイアログアプリなら、あの面倒なSizer(サイザー)に悩まされる必要がありません。

VisualWxの問題点は、まともなデバッグが出来ない点です。
でもprintデバッグは可能(丁度コンソールウィンドウも出るし)なので、何ちゃってアプリ程度なら問題とならないでしょう。
(というか、VisualWxって、高級なGUIデザイナという気がします)

Pythonを使ってない人に配る場合、py2exeでEXEに変換すればOKでしょう。
変換時、結構なファイルサイズになるかも知れませんが、今時ファイルサイズを気にする時代でもないですし。(特に会社内で配る場合、LAN前提ですからね)