【发布时间】:2021-03-11 04:51:05
【问题描述】:
如何在 ttk 主题之间切换? 我试过这个:
style = ttk.Style(root)
root.tk.call('source', r'Azure-ttk-theme\azure dark\azure_dark.tcl')
root.tk.call('source', r'Azure-ttk-theme\azure\azure.tcl')
style.theme_use('azure')
我创建了一个样式,然后当一个按钮被按下时,这个函数被执行:
def change_theme():
if style.theme_use() == 'azure':
style.theme_use('azure_dark')
else:
style.theme_use('azure')
但这并没有按预期工作,窗口的背景颜色没有改变:
浅色主题:
更改为深色主题后:
它没有正确更改。
【问题讨论】:
-
再次点击会变白吗?完整的代码会更有帮助,或者至少是这里涉及的部分。
-
@dossimusmaximus 是的,它变回白色。问题中已经提到了有关样式和更改样式的代码。
-
我还注意到在
light_style.theme_use('azure')之后插入行dark_style.theme_use('azure_dark')与图2 中的问题相同。 -
Okey 只是想看看您是否正在为小部件分配样式,但您只是在更改 ttk 主样式?好吧,它可以创建一个
ttk.Frame并将您的小部件添加到它而不是根框架。 -
我不完全确定 Tk 对象(在您的情况下名为 root)是否具有可以更改的样式,但我知道背景可以更改。
标签: python python-3.x tkinter ttk