web-dev-qa-db-ja.com

PythonでのGUIの開発:TkinterとPyQt

Pythonでユーザーインターフェイスを開発したい場合、TkInterとPyQtのどちらを選びますか?

私はTkInterで始めたばかりで、ラベル、ボタン、テキストボックスなどの基本的なウィジェットでいくつかのシンプルなUIを使用することができました。

乾杯

82
Arnkrishn

真剣に何かを開発している場合、特にあなたが学ぶことは必要に応じて他の言語でもQtを使用するように直接変換されるため、PyQtはおそらくQtが現在利用可能な最高のクロスプラットフォームインターフェイスツールキットです。

実際の(潜在的な)欠点は2つだけです。

PyQtはGPLでのみ利用可能です。つまり、コードをリリースする場合は、互換性のあるライセンス、 NokiaのGPL例外 の条件、または商用ライセンス(費用がかかる)の下で利用できる必要があります。これは、LGPLで利用できるようになったQtとは対照的です。

PyQtはデフォルトではPythonインストールに含まれていません。ライブラリを自分でパッケージ化する必要があります。ArsTechnicaには、Windowsでの実行に関する 良い記事 があります。およびOSX。)

63

PyQtは現在、私たちのメインGUIツールキットであり、1年の開発の後、私は他に戻りたくありません。安定した、成熟した、クロスプラットフォームで、完全にネイティブです。システムダイアログボックス(たとえば、ファイルを開くためのもの)でさえ、オペレーティングシステムで使用されます。

XPテーマを微調整し、それに応じてアプリのスキンを変更しました。これにより、Swingのようなツールキットに匹敵しない非常にプロフェッショナルな外観が作成されます。ウィジェットのようなGUIのものは、データベース接続、印刷、スレッド化をサポートしています(使用しており、チャームのように機能します)... PDFの生成にも使用します(他の外部ライブラリは不要です)。ただし、 ' Rapid GUI Programming with Python and Qt 'で速度を上げてください。QtにはGUIビルダー(Qtデザイナー)が付属していることに注意してください。私が使用した中で最高です(そして、私はそれらをたくさん試しました)。
このビルダーを使用して、ユーザーに表示するモックアップを作成します(簡単です!)。

ここで他の2人の開発者に紹介しましたが、文句を言うのは聞いていません...

34
Wim Verhavert

私は tkinter for小さなアプリケーションをシンプルなインターフェースで使用しています。優れた [〜#〜] wysiwyg [〜#〜] エディターの欠如が、より大きなアプリにとって問題になる場合でも、私はとても気に入っています。

大きなアプリの場合、 PyQt の方が適している場合があります。非常に優れたスクリーンデザイナーがいますが、ライセンスに問題がある可能性があります。

最後に、これらの欠点がないため、 wxPython が適切な代替手段になる可能性があります。

17
luc

PyQtは本当に簡単に習得でき、QtのドキュメントはPyQtでも機能します。また、.NETおよびJavaへのポートもあります。だから、それは妖精のクロスプラットフォームとクロスランゲージです。また、PyQtは Eric IDE に統合されています。

CSSスタイルのサポートも素晴らしいです。

新しいOpenSuSEインストーラーを参照して、それで何ができるかを確認してください。

7
przemo_li

Tkinterを使用して巨大なGUIを作成できます。 pytkgenモジュールを試してみたい場合は、JSON定義からTkinter GUIを作成するのに役立ちます。 https://github.com/tmetsch/pytkgen

3
Andre

私はPyQt-クロスプラットフォーム、使いやすく、信頼性の高いものを使用しています。

TkInter 非常に軽いものを使用し、tkInterがPyQtよりも優れている点を見つけることができません。

1
Kaymatrix