web-dev-qa-db-ja.com

Tkinter /グリッドジオメトリ用のGUIデザインアプリはありますか?

誰でもウィジェットを選択/ドラッグ/ドロップし、gridジオメトリマネージャーを使用して適切なTkinter呼び出しと配置でそのレイアウトをPythonコードに変換できるGUIデザインアプリを知っていますか?これまでのところ、使用する可能性のあるかなり素敵なオプションをいくつか示しましたが、代わりにpackまたはplaceを使用してコードを生成します。

あなたがそれを言う前に:はい、私はTkinterが習得しやすいことを知っています。これは学習の労力を避けることではなく、仕事に適したツールを使用することです。プロジェクトロジックをコーディングするためのドラッグアンドドロップウィジェット環境は、プロジェクトが特定のサイズを超えた場合、あまりにもぎこちなく、管理不能であることがずっと前にわかりました-より大きなものについては、ロジックの構築と保守が簡単ですプレーンテキストの場合。最近、GUIの設計には逆のことが当てはまることがわかりました。テキストの作成はある程度までは機能しますが、30個または40個のウィジェットを備えたメインウィンドウと、それぞれが同様の複雑さを備えたサイドウィンドウがいくつかある場合、すべてを入力するのではなくグラフィカルに設計できれば、はるかに速く簡単になります。

46
JDM

Visual Pythonとも呼ばれるVisualTkinterがあります。開発は活発ではないようです。 sourceforge および googlecode サイトがあります。 Webサイト ここにあります

一方、 PAGE はアクティブで、python 2.7で動作し、 py3k

コメントで示したように、これらはいずれもgridジオメトリを使用しません。私が言うことができる限り、それを行う唯一のGUIビルダーはおそらくKomodo Pro GUI Builderであり、これは廃止され、caでオープンソースになりました。 2007.コードは SpecTclリポジトリ にありました。

まだ使用していませんが、win7には問題なくインストールされているようです。これは私のPCからのスクリーンショットです:

enter image description here

ちなみに、 Rapyd Tk には、グリッドジオメトリを実装する計画もありましたが、そのドキュメントには「まだ」準備が整っていないことが記載されています。残念ながら、「ほぼ」放棄されたようです。

25
joaquin

他の回答で既に与えられているオプションとは別に、 pygubu と呼ばれる、よりアクティブで、最近の、オープンソースのプロジェクトがあります。

これは、githubリポジトリから取得した著者による最初の説明です。

Pygubuは、RAD tkinterモジュールのユーザーインターフェイスの迅速かつ簡単な開発を可能にするpythonツールです。

設計されたユーザーインターフェイスはXMLとして保存され、pygubu Builderを使用することにより、必要に応じてアプリケーションによって動的にロードできます。 PygubuはGladeに触発されています。


Pygubu hello world program は、Pygubuを使用して最初のプロジェクトを作成する方法を説明する紹介ビデオです。

OS X Yosemite 10.10.2上のpygubuデザイナーの最後のバージョンのインターフェイスのイメージの次のとおりです。

enter image description here

ぜひ試してみて、その開発に貢献してください。

39
nbro

グリッドを使用してレイアウトを行うための最適なツールであるIMHOは、グラフ用紙と鉛筆です。ある種のプログラムを求めていることは知っていますが、実際に機能します。私はTkプログラミングを数十年行ってきたので、レイアウトは非常に簡単になりますが、複雑なGUIを使用しているときはまだグラフ用紙を使用しています。

考えるべきもう1つのことは、Tkinterジオメトリマネージャーの真の力は、それらを一緒に使用することから得られるということです*。グリッドのみ、またはパックのみを使用するように設定した場合は、間違っています。代わりに、最初に紙の上でGUIを設計し、次にどちらかによって最適に解決されるパターンを探します。パックは特定のタイプのレイアウトに適した選択肢であり、グリッドは他の種類に適した選択肢です。非常に小さな問題の場合、場所が正しい選択です。ジオメトリマネージャーの1つだけを使用することに思考を制限しないでください。

*両方のジオメトリマネージャを使用する場合の唯一の注意点は、コンテナごとに1つだけを使用することです(コンテナは任意のウィジェットにできますが、通常はフレームになります)。

25
Bryan Oakley