Python 3中的主要tkinter
模塊及其子模塊ttk
看起來包含相同的小部件(即Buttons
,CheckButtons
等)。Python中tkinter和tkinter.ttk的部件有什麼區別?
因此,創建按鈕時,您可以自由使用tkinter.Button
小部件或tkinter.ttk.Button
。
你知道它們有什麼不同嗎?你爲什麼要選擇一個或另一個?
Python 3中的主要tkinter
模塊及其子模塊ttk
看起來包含相同的小部件(即Buttons
,CheckButtons
等)。Python中tkinter和tkinter.ttk的部件有什麼區別?
因此,創建按鈕時,您可以自由使用tkinter.Button
小部件或tkinter.ttk.Button
。
你知道它們有什麼不同嗎?你爲什麼要選擇一個或另一個?
tkinter
中的小工具非常易於配置。您幾乎可以完全控制它們的外觀 - 邊框寬度,字體,圖像,顏色等。
ttk
小部件使用樣式來定義它們的外觀,因此如果您需要非標準按鈕,它需要更多的工作。小部件也有點文件不足。瞭解底層主題和佈局引擎(小部件本身的佈局,而不是pack
,grid
和place
)是一項挑戰。
一般來說,主題小工具會給你一個看起來更「原生」的應用程序,但代價是喪失了可配置性。
我的建議是使用ttk
小部件,如果你想讓你的GUI看起來更現代一點,那麼tkinter小部件,如果你需要更多的可配置性。您可以在相同的應用程序中使用它們。
你可能想看看Converting existing applications to use the Tile widgets
另見:
正如本文中提到的:
最近,其他開源工具,如Qt的(由KDE 項目使用)和GTK(由GIMP圖形編輯軟件和 使用Gnome p roject)作爲Motif的強大和免費替代品出現在 X-Window GUI開發中。 Open Source 系統(如GNU/Linux)的快速增長的成功幫助這兩個工具包吸引了大量的開發人員社區,而且這兩個社區之間的公司(有時是友好的)競爭導致了新功能的爆炸式增長。對自由和可定製性的渴求創造了對可追溯性的需求。
Tk的當前實現僅支持原生外觀&感受 受支持的平臺(Windows,X-Window,MacOS)。這部分缺少解釋Tk的心智共享的損失,尤其是在Linux開發人員中, ,其中主題支持被認爲是「酷」或必備功能。
雖然許多GUI的昨天的目標是跨平臺的視覺 均勻性(Qt和GTK借用他們的大部分外觀從 Windows,這從NeXTStep的早期借來的),現在是很常見 上找到巨大的視覺差異今天的桌面,甚至在類似的 系統。截圖競賽現在非常普遍。
...
許多傳統知識的用戶可以看到主題支持作爲化妝品或比急需的功能,如megawidgets或 客觀更低 重要性。儘管如此,對於Tk的長期生存能力來說,這是一個關鍵特性,要實現 。許多課程現在推廣Qt,GTK或(aarggg!)Swing來代替Motif,並沒有爲Tk留下任何 的空間。無論其性質如何(跨平臺,性能,易用性,國際化和Unicode支持),缺乏 可訪問性將始終被視爲不使用Tk的主要原因之一。使用Tk而不是GTK的應用程序在pixmap主題的Linux桌面上,甚至在較新的MacOS和Windows 版本上看起來都是「外來的」 ,因爲8.0之前的應用程序位於非X桌面上。
有一些小部件(總共6個)是ttk的一部分,而不是tkinter。如上所述,有一些配置項丟失,如fg和bg, ,但這可以用樣式(在t8.5中引入)完成。
一起使用,tkinter.ttk重載tkinter給你兩全其美。
ttk中的一些額外的小部件是非常有用的(有6個在tkinter中找不到),就像我經常使用的Notebook(標籤式窗口)。
Larz60p