Pythonでユーザーインターフェイスを開発したい場合、TkInterとPyQtのどちらを使用しますか?
私はTkInterを始めたばかりで、ラベル、ボタン、テキストボックスなどの基本的なウィジェットでいくつかのシンプルなUIを取得できました。TkInterと比較してPyQtがどの程度優れているか知りたいだけですか?
乾杯
Pythonでユーザーインターフェイスを開発したい場合、TkInterとPyQtのどちらを使用しますか?
私はTkInterを始めたばかりで、ラベル、ボタン、テキストボックスなどの基本的なウィジェットでいくつかのシンプルなUIを取得できました。TkInterと比較してPyQtがどの程度優れているか知りたいだけですか?
乾杯
回答:
深刻なものを開発している場合はPyQt、特に必要に応じて学習した内容が他の言語のQtでの作業に直接変換される場合。Qtはおそらく現在利用できる最高のクロスプラットフォームインターフェイスツールキットです。
実際の(潜在的な)欠点は2つだけです。
PyQtはGPLの下でのみ利用できます。これは、コードをリリースする場合、互換性のあるライセンス、NokiaのGPL例外の条件、または商用ライセンス(費用がかかる)のもとで使用できる必要があることを意味します。これは、LGPLで利用できるようになったQtとは対照的です。
Pythonのインストールでは、PyQtはデフォルトでは含まれていません。ライブラリを自分でパッケージ化する必要があります。(Ars Technicaは、WindowsとOS Xでそれを行う方法についての良い記事を持っています。)
PyQtは私たちのメインのGUIツールキットであり、1年間の開発後、他に戻ることはしたくありません。安定しており、成熟しており、クロスプラットフォームで完全にネイティブです。システムのダイアログボックス(ファイルを開くためなど)も、オペレーティングシステムで使用されるものです。
XPのテーマを調整し、それに応じてアプリのスキンを調整しました。これは、のようなツールキットに匹敵しない、非常にプロフェッショナルな外観を作成しますSwing
。APIは広範で、ウィジェットなどの純粋なGUIを超えています。それはデータベース接続、印刷、スレッド(私はそれを使用し、それは魅力のように動作します)をサポートしています...私はそれをPDFの生成にも使用します(他の外部ライブラリは必要ありません)。私はマークサマーフィールドの本を「PythonとQtを使った高速GUIプログラミング」で読むことをお勧めします。QtにはGUIビルダー(Qtデザイナー)が付属しているので、これは私が使用した中で最も優れている(そして私はたくさん試しました)ことに注意してください。
私はこのビルダーを使用して、ユーザーに表示するモックアップを作成します(それはとても簡単です!)。
ここで他の2人の開発者に紹介しましたが、彼らが不平を言うのを聞いていません...
シンプルなインターフェースtkinter
で小さなアプリケーションに使用しています。優れたWYSIWYGエディターの欠如がより大きなアプリの問題になるかもしれないとしても、私はそれをとても気に入っています。
大きなアプリのPyQt
場合、より良い選択かもしれません。画面デザイナーは非常に優れていますが、ライセンスに問題がある可能性があります。
最後に、wxPython
これらの欠点がないため、良い代替案になる可能性があります。
Tkinterを使用して巨大なGUIを作成できます。pytkgenモジュールを試してみたい場合は、JSON定義からTkinter GUIを作成するのに役立ちます:https : //github.com/tmetsch/pytkgen