メインtkinter
モジュールとそのサブモジュールttk
in Python 3は、同一のウィジェットを含むように見えます(つまり、Buttons
、CheckButtons
など)。
そのため、ボタンを作成するときは、tkinter.Button
ウィジェットまたはtkinter.ttk.Button
。
それらの違いは何ですか?なぜあなたはどちらを選ぶのですか?
tkinter
のウィジェットは、非常に簡単に構成できます。境界線の幅、フォント、画像、色など、外観をほぼ完全に制御できます。
ttk
ウィジェットはスタイルを使用して外観を定義するため、非標準のボタンが必要な場合はもう少し作業が必要です。 ttk
ウィジェットも、少し文書化されていません。基礎となるテーマとレイアウトエンジン(pack
、grid
およびplace
ではなく、ウィジェット自体のレイアウト)を理解することは困難です。
一般的に、テーマウィジェットは、より「ネイティブ」に見えるアプリケーションを提供しますが、構成可能性が失われます。
私のアドバイスは、GUIをもう少しモダンに見せたい場合はttk
ウィジェットを使用し、もう少し設定が必要な場合はtkinterウィジェットを使用することです。同じアプリケーションで両方を使用できます。
タイルウィジェットを使用するように既存のアプリケーションを変換する をご覧ください。
参照:
このドキュメントに記載されているとおり:
最近、Qt(KDEプロジェクトで使用)やGTK(GIMPグラフィックス編集ソフトウェアとGnomeプロジェクトで使用)などの他のオープンソースツールキットが、X-Window GUI開発用のMotifの強力かつ無料の代替手段として登場しました。 GNU/Linuxなどのオープンソースシステムの急速な成長は、両方のツールキットが開発者の広大なコミュニティを引き付けるのを助け、両コミュニティ間の強固な(そして時には友好的な)競争が新機能の爆発をもたらしました。自由とカスタマイズ性への渇望がテーマ化の必要性を生み出しました。
Tkの現在の実装は、サポートされているプラットフォーム(Windows、X-Window、MacOS)でのみネイティブのルックアンドフィールを提供します。これは、特にテーマのサポートが「クールな」または必須の機能であると考えられるLinux開発者の間で、Tkのマインドシェアリングの喪失を部分的に説明しています。
昨日の多くのGUIの目標はクロスプラットフォームの視覚的均一性でした(QtとGTKは、NeXTSTEPから以前に借用したWindowsから視覚的外観の多くを借用しました)が、現在のデスクトップ上で、同様のシステム上でも大きな視覚的な違いを見つけることは非常に一般的です。スクリーンショットコンテストは、最近非常に一般的です。
...
多くのTkユーザーは、テーマのサポートを表面的なものとして、またはメガウィジェットやオブジェクト化などの必要な機能よりも重要度が低いと見なす場合があります。それでも、これはTkの長期的な実行可能性のために実装される重要な機能です。現在、多くのコースがMotifの代わりにQt、GTK、または(aarggg!)Swingを推進しており、Tkの余地はありません。その品質(クロスプラットフォーム、パフォーマンス、使いやすさ、国際化、Unicodeサポート)がどうであれ、テーマ化の欠如は常にTkを使用しない主な理由の1つと見なされます。 GTKの代わりにTkを使用するアプリケーションは、8.0より前のアプリケーションがX以外のデスクトップ上にあったため、pixmapをテーマにしたLinuxデスクトップ上、またはより新しいMacOSおよびWindowsバージョン上でも「外部」に見えます。
Tkinterではなく、ttkの一部であるウィジェット(合計6個)があります。上記のように、fgやbgなどのいくつかの構成アイテムがありませんが、これはスタイルで行うことができます(tk 8.5で導入)。
Tkinter.ttkをオーバーロードしてtkinter.ttkで両方を併用すると、両方の長所が得られます。
私が頻繁に使用するノートブック(タブ付きウィンドウ)のように、ttkのいくつかの追加ウィジェットは非常に便利です(tkinterにはない6つのウィジェットがあります)。
Larz60p
初心者にとっての私の意見は、Tkinter
を学ぶことです。なぜなら、それは本当に簡単に学ぶことができるからです。 Bu on the hand Tkinter.ttk
はTkinter
ウィジェットを本当に完璧にするために設計されたモジュールですが、本当に難しく、そこには簡単なオプションはありません。 -fg
、-bg
がないように。おそらく、Tkinter
で使用できない新しいスタイルがあります。 ttk
専用に設計されており、ttk
にあります。
Tkinter
ウィジェットは、他のネイティブプラットフォームウィジェットのようには見えません。
しかし、ttk
はより見栄えが良く、ニースであり、他のネイティブプラットフォームと同様です。
したがって、アプリを自分用にプライベートにする場合は、Tkinter
を使用し、必要に応じてttk
を使用します。これは、ttk
が、アプリ。
アプリを公開用に作成する場合は、ウィンドウやその他の重要なものを作成するためにTkinter
が必要になるため、両方に進みます。ウィジェットの場合はttk
に進みます。
しかし、正直に言って、両方を使用すると言います。なぜなら、これら2つの間に戦いはないからです。
ttk
は正直なところ挑戦です! Grid
、Pack
、Place
など、さらに重要なものがないためです。ちょっと待って!! Tkinter
にあります!両方を使用してください!素敵なアプリを作ってみてください!
両者の本当の違いは、Tkinter
ウィジェットは選択としてより構成可能であり、ttk
はより現代的であり、本当に便利なショートカットであるスタイルで構成可能であるということです。 Tkinter
はウィンドウのコアのようなものであり、ttk
はスタイリングです。のように考える:
Tkinter --- HTML、ttk --- CSS、Python --- JavaScript。
この答えで解決策があればいいのに!