PAGEでPython/TkのGUIデザイン

やりたいこと

  • Pythonで簡単なGUIアプリを作りたい。
  • PythonGUIツールキットとしては、Tkinterが標準で付属している。
  • Tkinterは、TkをPythonから使えるようにしたもの。
  • Tkは古めかしいGUIツールキットだが、簡単なGUIで見た目を気にしないならじゅうぶん使える。
  • しかしコードで画面をデザインするのは面倒なので、Visual Studioのフォームデザイナーのようなツールがほしい。
  • そのようなツールとしてPAGEがある。
  • PAGEは、じゃっかん挙動が怪しかったり、微妙な出来のツールではあるが無いよりはマシと思う。

PAGEのインストール

  • 下記からダウンロードしてインストールする

  • ショートカットからPAGEが起動できない場合、インストールしたフォルダにある page.bat をエディタで開いてみる。(Windows版の場合)
  • Python のコマンド名が "python3" になっている。Python3系がデフォルトのPython実行環境になっていて、"python3" が有効なコマンド名でない環境の場合、"python3" を "python" に書き換える。

使い方

  • 起動すると下図のような画面が開く。

  • ウィンドウが5つに分かれていて不便だが、いちおうフォームデザイナーのような感じで使える。
  • 画面デザインのやり方は見ればだいたい分かる。
  • ボタンのクリックイベントやチェックボックスの変化イベントなどは、Attribute Editor(VSのプロパティウィンドウみたいなやつ) の command に関数名を書くとひな型が自動生成される。
  • その他のイベントの紐づけは、ウィジェット(たとえばボタン)を右クリックして、「Binding」から関数名を設定する。

  • メニューの「Gen-Python」から ①「Generate Python GUI」と ②「Generate Support Module」でそれぞれPythonコードを生成して Saveする。

  • ①がGUIデザインのコード、②がメイン関数とイベントハンドラのひな型である。
  • あとは②にコードを追加していく。

注意点 & 挙動の怪しさ

  • コードを再生成すると手書きのコードは消えてしまうので、バージョン管理ツールなどを利用して手動でマージする
  • 変な状態にはまってしまってPAGEを終了できないことがある? その時はタスクバーから全てのウインドウを閉じる。
  • Attribute Editorでの設定がコードに反映されないことがある? その時は手動でコードを修正する。