12

簡単な質問:

  • そこにはどのような Python GUI API があり、特定の API の利点は何ですか?

私はここで宗教戦争を探しているわけではありません。Python GUI API に関して世の中に出回っているすべてのものをうまく処理したいだけです。

4

15 に答える 15

15

ここに良いリストがあります。

于 2008-09-18T16:04:43.180 に答える
11

私はTkinterとwxPythonを使用しました。Tkinterは非常に基本的であり、ネイティブウィジェットを使用しません。これは、Tkinterアプリケーションがどのプラットフォームでも同じように見えることを意味します。これは魅力的に聞こえるかもしれませんが、実際には、どのプラットフォームでも見苦しいことを意味します:-/それでも、非常に使いやすいです。私が学習していたとき、Thinking in Tkinterは非常に役に立ちました。これまで、GUIプログラミングを行ったことがなかったからです。ただし、フレームやレイアウトアルゴリズム、ボタンやバインディングなどに慣れている場合は、その手順をスキップできます。

TkinterをTixで拡張できます(ただし、Tixはpy2exeではうまく機能しないことに注意してください)。また、Python Megawidgetsもチェックしてください。これは、Tkinterの基本を使用してより高度なコントロールを構築します。

最後に、Tkinterはシェルとうまく連携します。インタプリタを起動し、'import tkinter''tk = tkinter.Tk()'などを実行して、GUIをインタラクティブに構築できます(応答性が高くなります)。(ただし、IDLEを使用している場合は機能しないと思います)

wxPythonは見栄えがはるかに良く、はるかに幅広いコントロールが付属しています。これはクロスプラットフォームであり(私のMacでは少し厄介なようですが)、各プラットフォームでネイティブコントロールを使用します。ただし、少し混乱します。また、ほとんどの機能を紹介するデモアプリケーションが付属しており、実験用のテストベッドを提供します。wxPythonに関するいくつかの具体的な考え:

  • ウィジェットをレイアウトするには、3つの(?)異なる方法があります。それらのうちの2つを無視します。サイザーを使用するだけです。それでも、BoxSizerとGridBagSizerだけを使用して、ほぼすべてのレイアウトを実行できます。
  • すべてのwxウィジェットにはIDがあります。IDが何であるかを気にする必要はありませんが、昔は(私は思うに)知っておく必要があったので、古いコードの中には明示的なID割り当てが散らばっているものもあります。また、ほとんどのデモコードでは、IDパラメーターとしてどこでも-1が使用されます(メソッドはすべて、キーワードパラメーターとしてIDを使用しますが、デフォルトでは-1になります)。
  • 標準のwxWidgetsドキュメントとwxPythonデモを必ず入手してください。両方が必要です。
  • py2exeでwxPythonを使用し、Windows XPで見栄えを良くしたい場合は、setup.pyに少し注意が必要です。こちらをご覧ください
于 2008-09-18T22:37:04.983 に答える
4

PyQt は、Qt の経験または興味がある場合に最適です。

http://www.riverbankcomputing.co.uk/software/pyqt/intro

于 2008-09-18T16:06:07.593 に答える
3

Instead of posting a list of your options I will give my humble opinion:

I am in love with wxPython.

I have used Qt in C++ and Tk way back in the Tcl days but what really makes me like wxPython is the demo that you get with it. In the demo you can browse through all the different widgets frames etc that are part of the framework see the source code and actually see how it looks while it is running.

I had some problems getting the Linux version build and installed but now that I have it available I use it all the time. I have used wxPython for small data analysis applications and I have written several internal tools related to comparing test results, merging source code etc.

于 2008-09-18T16:25:51.133 に答える
3

ほとんどのPythonGUIAPIは、最も一般的なc / c ++GUIAPIのラッパーになります。gtk用のpythonラッパー、qt用のpythonラッパー、.NET用のpythonラッパーなどがあります。

だから本当にそれはあなたのニーズが何であるかに依存します。Linux、Mac、およびWindowsでネイティブに見えるウィジェットを描画する最も簡単な方法を探している場合は、wxPython(WXウィジェットのPythonラッパー)を使用してください。ただし、クロスプラットフォームがニーズの1つでない場合は、他のライブラリの方が便利な場合があります。

于 2008-09-18T16:12:15.347 に答える
3

私はこのリンクを長い間見つけました: http://www.awaretek.com/toolkits.html。あなたの基準に基づいて、テイクイットを提案します。私にとっては、常に wxPython を示唆しています。とにかく、さまざまなツールキットでたくさんのスコアが得られます。私にとって正しいことは、あなたにとって正しくないかもしれません。ただし、基準に従ってすべてのテイクイットがどのようにスコア付けされたかがわかるので、何らかの理由でトップのツールキットが気に入らない場合は、基準に最も近いツールキットを確認できます。

QT/GTK/WxWidgets (以前の wxWindows) は、最も成熟したクロス プラットフォーム GUI ツールキットの 1 つです。唯一の問題は、Python のデフォルト インストールでは何もインストールされないため、ライブラリをコンパイルする必要がある場合があることです。インストール不要で実行するだけのものが必要な場合は、前述のように Python でデフォルトでインストールされる TKInter を使用してください。

とにかく、私の基準は、使いやすさで 9、ドキュメント/ウィジェットの成熟度で 10、インストール ベースで 10、GUI コード ジェネレーターで 5、Windows/Linux のネイティブ ルック アンド フィールで 10、最後の 2 つで 1 と 5 でした。 '私は Mac OSX にあまり興味がありません (ここで 10 であっても、wxpython を示唆しています)。

于 2008-09-18T16:40:49.567 に答える
3

PythonCardは本当に使いやすいです。それが私がお勧めするものです。

彼らの記事は次のとおりです。

PythonCard は、Python 言語を使用して、Windows、Mac OS X、および Linux でクロスプラットフォーム デスクトップ アプリケーションを構築するための GUI 構築キットです。

PythonCard のモットーは、「単純なものは単純であるべきであり、複雑なものは可能であるべきだ」です。

PythonCard は、グラフィカル アプリケーションを最小限の労力とコーディングで迅速かつ簡単に開発したい場合に最適です。Apple の HyperCard は、私たちのインスピレーションの 1 つです。シンプルでありながらパワフル。

PythonCard は wxPython を使用します。既に wxPython に精通している場合は、PythonCard を wxPython プログラムを実行するためのより簡単な方法と考えてください。これには、クロスプラットフォーム アプリケーションを構築するのに役立つ、コピーしてサブクラス化するための多数のサンプルとツールが既に用意されています。

于 2008-09-18T17:21:42.810 に答える
2

EasyGUI はイベント駆動型ではないという点で、他の GUI とは異なります。これにより、従来の直線的な方法でプログラミングし、必要に応じて簡単な入力と出力を行うためのダイアログを配置できます。GUI プログラミングのイベント ドリブン パラダイムをまだ学習していない場合でも、EasyGUI を使用すると、非常に基本的なタスクをすぐに実行できるようになります。後で、イベント駆動型の GUI パラダイムに移行したい場合は、anygui、PythonCard、Tkinter、wxPython などのより強力な GUI パッケージを使用して移行できます。

EasyGui ウェブサイト

于 2008-09-18T23:49:41.283 に答える
2

WX は Mac で問題があります。

イベント駆動型の GUI API を使用して Python で何かを実行したいので、こちらを参照しました。Mac に MatPlotLib の一部として wx をインストールしましたが、正しく動作しません。キーボードからの入力を受け付けません。これを 3 つの異なる Mac オペレーティング システムに 3 回インストールしましたが、最初は機能しましたが、他の 2 回はこの問題が発生しました。

このバージョンは Enthought のディストリビューションで使用しているため、インストールは必要ありませんでした。個別にインストールしたら、依存インストールが多すぎて試しにインストールしてみました。

ここで読んだことから、これはシンプルでクロスプラットフォームである必要があるため、Tkinter を試してみます。私はさまざまな理由で Mac OS が好きですが、Python ツールは Windows (およびおそらく他の Linux) にはるかに簡単にインストールできます。ここで Mac の視点を提供したいと思いました。

于 2012-08-24T00:13:47.577 に答える
1

私はGNOMEの男なので、PyGTKが好きです。PyGTKを使用することは、私にとって非常にPython的だと感じます。コード編成は一貫していると感じ、ドキュメントはクリーンで徹底的であり、慣れるための非常に簡単なツールキットです(おそらくTreeviewsを除く)。

于 2008-09-19T14:29:51.253 に答える
1

Python 用の使いやすい GUI クリエーターは存在しません。AutoIt や AutoHotkey のような小規模なスクリプト言語が優れた非常に使いやすい GUI メーカーを持っていることを考えると、これは本当に驚くべきことです。さあ、Python 信奉者の皆さん、もっとうまくやれないでしょうか?

于 2010-11-10T20:04:48.070 に答える
1

wxPython か Tk が好きです。

Tk には標準の Python ディストリビューションが付属しているため、他に何もインストールする必要はありません。

wxPython (wxWigets) は、はるかに強力で、見栄えが良いようです。また、クロスプラットフォームでもうまく機能します (ただし、差分システム タイプで異なる基になるグラフィック API を使用するため、完全ではありません)。

于 2008-09-18T16:15:25.400 に答える
0

私はここ数年wxPythonを使用していて、かなり気に入っています。wxPythonの最も優れている点は、UIが実行されているさまざまなプラットフォームでネイティブに感じられることです(WindowsとLinuxでは優れていますが、OS / Xではそれほど良くありません)。

APIには一貫性がありませんが、すぐに慣れます。

Testuff (私自身の製品であるため恥知らずなプラグ)をチェックして、wxPythonで何ができるかを理解することができます(私はかなりの努力を払って言わなければなりませんが)。

于 2008-09-18T19:15:28.247 に答える
0

wxPython、そして PyGTK も wxGlade を使用して、作成するほとんどの UI を設計できます。それは大きなプラスです。準備が整うまで、GUI をハンドコーディングする方法を学ぶ必要はありません。wxPython がどのようにハンド コーディングを行うかについて十分に理解する前に、wxGlade から直接いくつかの GUI プログラムを作成しました。

PyQt にも同様のグラフィック レイアウト デバイスがありますが、PyQt を正しくコンパイルするという幸運に恵まれたことはありません。また、最終的な Python コードの作成方法を示すチュートリアルやドキュメントも不足していました。私が見つけたドキュメントの多くは、Qt の C++ バージョンに言及していました。

Tkinter は手っ取り早いプログラムには適していますが、現実的には、wxGlade を使用する場合は、wxPython でプログラムを作成する方が高速である可能性があります。少なくとも、時間をかけて「ダミー」プログラムを手作業でコーディングするのではなく、wxGlade を使用してクライアントにプログラムの視覚的表現を示すことができます。

于 2008-09-22T08:29:01.173 に答える
0

wxpython、pyqt、pygtk、tkinter などのより堅牢なツールキットとは比較にならない kivy (successor または pymt)、pygui (pyrex ベース)、pyui、nufox などの python 固有の gui-api があります。

これらは追加のオプション ツールです。

それらの唯一のユニークな点は、prima (perl 固有の api) と shoes (ruby 固有の api) があるのと同じように、これらが python 固有の api であることです。tk が API の tcl ベースのポートである場合 (その他は c および c++ ベースである場合)、これらの API はそれぞれの 3 つのスクリプト言語用に特別に作成されていることを理解するのに役立ちます。

これらのうち、kivy は最も堅牢ですが、pygui のコーディングは非常に python に似ていると言われています。

次に、jython と pydev で使用できるツールキットである jpype があります。これは、実際には python/jython-interface の下でカスタマイズされた Java の japi です。

于 2012-09-23T10:35:31.420 に答える