wxGladeでGUIアプリを構築してみた

[,left,w350]
クロスプラットフォームGUIライブラリwxWidgetsの使い方を学習中。さらにこのライブラリに関係してwxGladeというGUI開発ツールもあり、それを使うとC++だけでなく、Perl,Pythonなど複数の言語のGUI構築のスケルトンコードを生成できるようなのでそれも学習中。
まずは、本を参照しながら、サンプルを作りながら簡単なライフゲームのアプリケーションを作ってみた。それがうまく動いたので、次にwxGladeを使ってレイアウトするものを作成してみた。


wxGladeを使ってみた感想。融通が効かないというか何というか。スケルトンコードを生成した後で直接ソースをいじるので、後からちょっとだけレイアウトを変更したいなどという場合は新しくコードを生成することになる。するとこれまで編集した分は消えてしまうので、編集した差分をもう一度ソースコードに追加しなければならないのが面倒(追記:公式チュートリアルを読んだら解決。begin~endの間のセクションだけが更新される)。あとは、部品にIDをつける、たとえばID_StartなどというIDを指定してもそのIDに対する列挙型の宣言は自動でされないので、スケルトンコードに自分でenum~とか追加しなければならない、とか。

[,right,w350]

もちろんwxGladeを使う方が効率は上がるので良いのだけれど、あくまでも補助という感じだ。それと、自分はwxWidgets上でOpenGLのアニメーションを使いたいのだけれど、wxGladeだと配置する部品としてwxGLCanvasクラスを選択できない。代わりに「カスタムクラス」として配置するのだけれど、カスタムクラスを使うとGUIのプレビューができない。なんだかなあ。

デスクトップGUIアプリケーションの作成は他の環境、例えばC#だともっといいのかもしれない。というかいいんだろうな。

参考



Cross-Platform GUI Programming with wxWidgets (Bruce Perens Open Source)

Cross-Platform GUI Programming with wxWidgets (Bruce Perens Open Source)