ITで遊ぶ

wxPython (PythonのGUI)

ネットで記事を書いているプログラマーっておもしろいもので、ちょっと難しいと知らんぷりをする。

たとえば、Visual Basicが全盛のころは盛んにGUIなどについて書きまくっていた人が多いが、PythonでGUIについて書いている人はごく少数だ。

とりあえずなんとかするならば、EasyGui(私の翻訳あり)でも考えるには値する。

でも本格的なGUIが欲しいならばwxPythonが結構メジャーなのだと思う。

こういうモダンなGUIはウィンドウのリサイズに対応するために、レイアウトマネージャを使うことが多い。

JavaのSwingもそういうものがある。

ところがレイアウトマネージャの理解はどれも簡単ではないようだ。(いや、簡単なのかもしれません。だからあちこちでこの考え方が採用されているのでしょう)

ほとんどの人がPythonのGUIについては口をつぐむ。

必要があってwxPythonを調べたが、コードだけでウィンドウ全体のイメージをもつことは難しいと思う。

FrameというWindowがあってPanelをはりつけ(コード上ではaddし)、レイアウトマネージャーのsizerをはりつけ、sizerのパーティションに各GUIパーツをはりつけていき、イベントに対応するコードを書く。

これ、頭の中でイメージできている人はかなりのものだと思います。

まぁ、wxPythonそのものはいつものPython-izmが教えてくださるのですが。

そこで救世主がwxGladeになるわけです。見たままで開発できる。

wxGladeについてはここにいいチュートリアルを書いてくれている人がいます。

イベントハンドラーをふくめるとこのwikiがいいかも。

とにかくwxGladeで概要を作ってからイベントハンドラーをゴリゴリ書いていくのがよいのではないかな。

wxPythonがWindows, Mac, Linuxで動作する以上、それで作られているwxGladeはどれでも動きます。

PythonでGUIを伴うアプリを考える場合、考えてみてはどうでしょうか。

追記2020/11:とはいえ使ってるのはPython標準でバンドルされているTkinterです。

関連記事

  1. Web Serial API

  2. PHP, Python, Ruby, バランス

  3. CakePHP(2)

  4. やっぱりドットインストールは勉強にいい

  5. Reactのお勉強方法

  6. Raspberry Piに本当の乱数発生器が追加されていた

  7. web APIサーバーで語られないこと

  8. ハッカソンって騒ぐだけ?