Python GUIアプリを開発するための標準フレームワークはありますか?


20

Pythonを使用してGUIアプリケーションを作成するためのフレームワークは非常に多くあります。しかし、重要な標準フレームワークはありますか?たとえば、Visual Studioに.NET / C#のバンドルがあります。

他の視点でも考えています。将来、Pythonプログラマーの仕事のインタビューを行う場合、どのGUIフレームワークが検討されますか?

また、GUIとPython言語を統合するIDEはありません。フレーバーの選択は良いですが、過剰選択は注意散漫になります。


いいえ。「標準」はありません。.NETは標準化されていません。:C#のための標準があり、.NETのための標準を書いた標準化団体はありませんecma-international.org/publications/standards/Ecma-334.htmが。おそらく「標準」とはあなたが言っていることではないでしょうか?
-S.Lott

@ S.Lott:そのわかりにくい用語で申し訳ありません。私は何か違うことを意味しました。.NETアプリケーションの場合、Visual Studioは、GUIビルダーなどを含む最高のオールインワンツールです。VS.NETの代替を探す人はほとんどいません。私は同様の言葉で意味した。完全なオールインワンソリューションの検索が終了するPython IDE。
RPK

IDE(Visual Studioなど)について質問していますか?もしそうなら、「フレームワーク」は質問の間違った言葉です。何を求めているのかを明確にしてください。
-S.ロット

@ S.Lott:いいえ、Visual Studioについては聞いていません。明確にさせてください。たとえば、ASP.NETを取り上げます。これはフレームワークですが、Visual Studio IDEに非常にうまく統合されます。センターテーブルですべてのツールを使用できます。Python用のものはありますか?
RPK

Visual StudioはIDEです。== 1か所で開発するためのすべてのツール。「Visual Studioについて質問していません」は、「中央のテーブルにすべてのツールがあります。Pythonに何かありますか?」の正反対です。IDE(Visual StudioのPythonバージョン)について尋ねているか、フレームワーク自体について尋ねています。または、おそらくあなたは両方について尋ねています。問題が何であるかを理解することは非常に困難です。してください更新は非常に明確にあなたが望む状態への質問を。
-S.ロット

回答:


12

その定型コードをすべて書くのが好きなら、PythonでWin32 API GUIアプリを書くことができます:PyWin32プロジェクト

個人的に、私はwxPythonが好きです。これはクロスプラットフォームであり(LinuxとWindowsの両方で完全にサポートされています)、かなり長い間使用されてきました...まともなサポートベース、および多くのドキュメント/サンプルコード。これを使用する場合は、BoaConstructorをご覧ください。それがwxPythonのIDEです(または、wxPythonで記述されたIDE)。それが唯一のRAD IDEで、特に私はQtのUIエディタ(QtのUIエディタはC ++とPyQtは両方のために使用可能である)を保存、言及さえも価値があることに遭遇したことをPython用。

ピーターが彼の答えで述べたように、Tkは古いPythonアプリのデファクトGUIですが、エンドユーザーにはそれほど見栄えがよくありません。見栄えを良くし、UIのスタイルを設定する機能を提供する拡張機能がいくつかありますが、古いGUIアプリを維持している場合を除き、気にすることはお勧めしません。

pyGTKも、既に述べたように、別の良い選択です。WindowsでのGTK開発の個人的な経験はありませんが、それもクロスプラットフォームです。IMO- PyQTの方が良い選択です。Qtライブラリで作成されたGUIは、GTKで作成されたGUIよりも外観と機能が優れていると思います。また、Qtのシグナル/スロットイベントメカニズムの操作が簡単であることがわかりました。YMMV。

少なくとも私が見たものではありませんが、Python GUI開発のための標準は実際にはありませんが、長年一緒に仕事をした仲間のPython開発者の中で、彼らは他のどのものよりもwxPythonとPyQTを提案しましたツールキット。正直なところ、Python GUI開発のポジションが相当数あるかどうかはわかりません。私が長年行ってきたPython開発の大部分はサーバー側で行われてきましたが、GUIアプリケーションのオープンソースルートを模索している企業が今ではないわけではありません。


Tkinterアプリは、単に時間をかけるだけで、ネイティブアプリとほとんど見分けがつかないほど、容認できる外観にすることができます。ただし、wxPythonは微調整なしでより良く見えることに同意します。個人的には、ほとんどの人にとって十分に見栄えがよく、私の生産性はwxPythonよりも高いため、Tkinterを好んでいます。
ブライアンオークリー

Tk(Tkinter)は、l10n / i18nアプリケーションの開発を計画している場合、完全なUnicode(例:スクリプトシェーピング)をサポートしません。
user.dz 14

12

Tkは以前は標準でしたが、間違いなく単純でablyいものです。それからQtはかなり人気になりました。Gtkも可能です。これはLinux風のプラットフォームでのお気に入りをカバーしています。

しかし、あなたは正しい、本当に簡単な答えはありません。結局のところ、過剰選択はオープンソースの世界ではかなり一般的です。


4
私はそれはGtkのより立派に見えるという理由だけではQtを選ぶだろう
TheLQ

1
総合的な回答を得るために+1。Qtは素晴らしく強力であり、2つのバインディング(ライセンスごと)が利用可能です。
クリストフ

おそらくWindows上で見苦しいことはもうありません。それでも、あなたが書かなければならないコードがどのように見えるかは好きではありません。Codeいコード。外観、純粋にネイティブ、そして非常に合理的な、ついに。
ウォーレンP

5

「標準」は存在せず、私は同意します-選択肢の多さは苦痛です。Python GUI用の統合された「双方向ツール」IDEについては、そこに何も存在しないように見える理由も疑問です-たぶん誰もが1つだけのためにIDEに投資したくないGUIツールキットがたくさんあるからそれら。

そうは言っても、Pykt 4.7 with P3kは素晴らしいGUIを提供します(他の多くの強力な機能も同様に)。http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/introduction.htmlを参照してください -「これはPyQt 4.8.4のリファレンスガイドです。PyQtv4はQtのv4のPythonバインディングのセットですNokiaのアプリケーションフレームワーク。」

PyQtは広く使用されており、いくつかの良い本があります:http : //www.qtrac.eu/pyqtbook.html「PythonとQtを使用した高速GUIプログラミング」を参照して ください(本は少し古くなっています-更新する必要がありますP3kの場合)。

PyQtには2つの重大な問題があります。

1)明確に「unpythonic」な特徴がいくつかあり、C ++ Qtライブラリの単なる薄いラッパーです。しかし、「最新かつ最高の」パッケージで対処されているものがあるため、P3k-PyQt 4.7を推奨しました。この投稿をチェックしてください:

PyQtの設計の問題

2)商用利用の場合、PyQtとQtの両方に対してかなり高いライセンス料がかかります。

PyQtに代わるものとして、ノキアのPySideがあります。これは完全にオープンソースであるQtの別のPythonラッパーです(ただし、Qtライセンスは含まれていません)。

Qtについて多くのことを知っているのは市場的には悪いことではないので、PyQtからそれを手に入れることができます。 。

あなたが何を選んだかに関係なく、Pythonでは「箱から出して」いるにもかかわらず、tkinterをほとんど回避することをお勧めします。

HTH


3

pyGTKは多作です。使い方はとても簡単で、GUIの見た目も悪くありません。


コミュニティの豊かさは?回答がフォーラムに到着するまでの時間はどれくらいですか?
RPK

1
@RPK、私にはわからない、私は助けを求める必要がなかった、すべてが非常に使いやすいです。
dan_waterworth

「多産」が正しい単語かどうかはわかりません。「子孫、若い、果物などを豊富に生産し、非常に実り多い:多作のナシの木」「ポピュラー」または「素晴らしい」。
-S.Lott

@ S.Lott、多作:「同様に結果を生み出すか、豊富に機能します」。(2番目のウィクショナリー定義)。「生産に貢献すること、実りある結果、活発なこと、多産な脳、悪に富む論争。」(Websterの改訂されたUnabridged辞書(1913 + 1828))
dan_waterworth

「pyGTKは多くのアプリケーションを生成しますか?」緊張しているようだ。人々はアプリケーションを作成します。pyGTKはおそらく人気のある財団ですが、プロデューサーのようには見えません。
S.Lott

0

Gtk3は、非常に成熟したGUIフレームワークです。ネイティブPythonバインディング(GObject Introspection)と多くのドキュメントがあります。かなりのGUIを実行している場合は、Anjutaの使用を検討してください。Anjutaには、ウィジェットを簡単にセットアップするためのドラッグアンドドロップインターフェイスがあります。

WxWidgetsはかなり優れていますが、AnjutaがGtkに対して行うように、Pythonコールバックを動的に生成する簡単な方法はありません。

PyGtkは非推奨となり、Gtk3からPythonへのバインディングが推奨されます(GObject Introspection)

PyQtはPython GUIのプレーヤーでもありますが、大きなコミュニティはありません。

BoaConstructorはより長く保守されており、使用するのは愚かなことです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.