我正在使用应用程序tkinter的主题(ttk)GUI工具包.尝试将一些统一样式应用于主窗口中的小部件:
s = ttk.Style()
s.configure('.', background='#eeeeee')
s.configure('.', font=('Helvetica', 14))
self.configure(background='#eeeeee')
Run Code Online (Sandbox Code Playgroud)
字体更改效果很好,但由于某种原因,窗口小部件(即ttk.Label和ttk.Button)似乎并不反映背景更改,由于窗口背景和窗口小部件之间的对比,这在视觉上非常明显.如果我检查它设置为:
label1.cget('background')
Run Code Online (Sandbox Code Playgroud)
它返回了'',显然它没有被设置,但我不明白给出ttk.Label和样式的文档有什么不对.尝试直接设置单个标签的背景:
label1.configure(background='#eeeeee')
Run Code Online (Sandbox Code Playgroud)
也不起作用(即没有变化).有任何想法吗?
小智 6
我也遇到了这个问题,我相信问题是 ttk 的“aqua”主题,这是 OSX 上的默认主题,不尊重许多小部件中的背景颜色配置。我通过将主题设置为“默认”解决了这个问题,这立即导致所有小部件的背景按指定显示。
这是我的基本示例:
import tkinter
from tkinter import ttk
root = tkinter.Tk()
style = ttk.Style(root)
style.theme_use('classic')
style.configure('Test.TLabel', background= 'red')
text = ttk.Label(root, text= 'Hello', style= 'Test.TLabel')
text.grid()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
尝试更改style.theme_use('classic')为style.theme_use('aqua')以查看问题。
| 归档时间: |
|
| 查看次数: |
1869 次 |
| 最近记录: |