以下代碼按預期方式工作,在綠色背景框架(也包含大量填充)中呈現紅色背景按鈕(帶有大量填充)。請注意,Frame填充是在Style聲明和ttk.Frame初始化中指定的。由Ttk框架忽略的樣式中指定的填充
import ttk
import Tkinter
root = Tkinter.Tk()
ttk.Style().configure("TFrame", background="#0c0", padding=60)
ttk.Style().configure("TButton", background="#c00", padding=20)
frame = ttk.Frame(root, padding=60)
frame.pack()
btn = ttk.Button(frame, text="Button")
btn.pack()
root.mainloop()
然而,現在去掉「填充= 60」從幀起始線(即frame = ttk.Frame(root)
),留下只是在Style().configure(...)
聲明,並在彈出的窗口中有幀中沒有填充(因此你不能說出背景顏色是什麼)。相反,只有紅色背景按鈕佔據整個窗口。無論Style語句如何,幀填充已恢復爲默認值0。
爲什麼忽略指定樣式「TFrame」的填充?另一個屬性(「背景」)正確應用於框架,並使用TButton樣式將填充和背景屬性正確應用於Button。
有趣。你使用Windows,Mac或Linux?我在Ubuntu 14.04上檢查過它,結果和你一樣。不知道這是否是一些與操作系統相關的事情,或者是一些錯誤或其他問題 – Marcin 2015-02-11 07:23:59
Mac OS X 10.9.5(Python 2.7.9)。我也在我的Ubuntu 14.04 VM(Python 2.7.6和3.4.0,如果你將python3改爲Tkinter-> tkinter,ttk-> tkinter.ttk)中嘗試過它。所有相同的結果。 – 2015-02-11 18:00:41