mieki256's diary



2023/06/16(金) [n年前の日記]

#2 [python] tkinter用のGUIレイアウトツールを少し試用

Windows版のPythonには、標準でGUIアプリを作れるモジュール、tkinter が含まれている。Tcl/Tkという言語の、GUI部分を担当しているTkをPythonから利用できるようにしたのが tkinter。

その、tkinter用のGUIレイアウトが出来るツール(RADツール?)が気になったので、少し試用してみた。環境は Windows10 x64 22H2 + Python 3.10.10 64bit。

PAGEを試用 :

_PAGE - A Python GUI Generator
_PAGE - Browse /page/7.6 at SourceForge.net

現行版は 7.6 らしい。page-7.6.exe をダウンロードして実行するとインストーラが起動する。どこにインストールするかと尋ねてきたので、今回は D:\Python\page\ にインストールした。

デスクトップにアイコンが作成されたのでダブルクリックして起動しようとしたところ、「python3が無い」と言われて起動せず。page.bat を編集して python3 を python に書き換えたところ動くようになった。
@start /min python3 "%~dp0page.py" %1 %2 %3
↓
@start /min python "%~dp0page.py" %1 %2 %3

少し触ってみたけれど、各部品を座標値で配置していくようだなと…。このレイアウト方法は、好きなように部品を配置できる点がメリットだけど、ウインドウサイズの変更時に部品の位置が追従して変わってくれないあたりはデメリットかも。

GUI builderを試用 :

_SpecTcl Home Page
_SpecTcl - Browse /GUI Builder/2.5.20070129 at SourceForge.net

本来は Tcl/Tk 用のツールだけど、Perl/Tk、Ruby/Tk、Python/Tkinter もサポートしてる。座標値で部品を配置せず、グリッド内に部品を配置していくタイプ。

「here.」と書かれてるリンクをクリックすると、2.5.20070129 版の入手先ページが開く。guibuilder-win32-ix86-20070129.exe がWindows版。ダブルクリックすればウインドウが表示されて、そのまま利用できる。

Windows10 x64 22H2上でも起動はしたのだけど…。古いツールなので、Commands → Start Test を選んでも、Python 2.x 用のスクリプトを生成してしまって、Python 3.x がインストールされてる環境ではエラーが出てしまう。

環境変数 PATHの先頭に Python 2.7 を追加してから guibuilder-win32-ix86-20070129.exe を起動してみた。この状態なら Commands → Start Test でウインドウのプレビューが表示できた。ただ、一度表示すると GUI Builder が固まる…。File → Save をすれば .py も生成されて、Commands → Vide Code でPythonスクリプトのソースが見れるようなので、それでどうにか…。

SpecTclを試用 :

_SpecTcl Home Page
_SpecTcl - Browse /Windows binary/1.2.2a at SourceForge.net

前述の GUI Builder の元になったツール。だと思う。たぶん。1.2.2a が最終版だろうか。SpecTcl122a.exe をダウンロードして、ダブルクリックすれば起動する。1.2.2a なら Python/Tkinter もサポートしているらしい。他に、Java, Perl, HTML もサポートしてある模様。

これも古いツールなので、Python 2.x用のスクリプトを生成するのだけど…。Python 2.7 に切り替えて生成された .py を実行してもエラーが出てしまう。もしかすると tkinter に対応させようとしたけど途中で開発が止まってしまったのかも…。

pygubuを試用 :

_GitHub - alejandroautalan/pygubu: A simple GUI builder for the python tkinter module
_GitHub - alejandroautalan/pygubu-designer: A simple GUI designer for the python tkinter module

pipでインストールできる。
pip install pygubu -U
pip install pygubu-designer -U
> pip list | grep pygubu
pygubu                    0.31
pygubu-designer           0.36

Pythonインストールフォルダ\Scripts\内に、pygubu-designer.exe があるので、実行するとレイアウトツールが起動する。

部品のレイアウト方法は、pack, grid, place が選べる。上下や左右に並べて配置することもできるし、グリッドで配置もできるし、座標値で配置することもできるのだろう。

pygubu-designer.exe は、拡張子が .ui の xmlファイルを出力することに特化したツールらしい。別途 .py を書いて、その中から .ui を呼び出して使う形になるっぽい。

しかし…。Python 3.10.10 + pygubu 0.31 では、import pygubu の行で「ModuleNotFoundError: No module named 'pygubu'」と表示されてしまう…。なんでや…。

py hoge.py ではエラーが出るけど、python hoge.py なら動くことに気づいた。何故…。

PySimpleGUIでもいいような気がしてきた :


以上です。

過去ログ表示

Prev - 2023/06 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project