繁体   English   中英

如何在深色和浅色 ttk 主题之间切换?

[英]How to switch between dark and light ttk theme?

如何在 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')

我创建了一个样式,然后当一个按钮被按下时,这个 function 被执行:

def change_theme():
    if style.theme_use() == 'azure':
        style.theme_use('azure_dark')
    else:
        style.theme_use('azure')

但这并没有按预期工作,window 的背景颜色没有改变:

浅色主题:

轻主题

更改为深色主题后:

只有按钮更改

它没有正确更改。

但更改主题后应该是这样的: 黑暗主题

这是一个默认 styles 的小例子:

from tkinter import ttk
import tkinter

def change_theme():
    if style.theme_use() == 'alt':
        style.theme_use('clam')
        root.configure(background='grey')
    else:
        style.theme_use('alt')
        root.configure(background='white')

root = tkinter.Tk()
#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 = ttk.Style(root)
style.theme_use('alt')

frame = ttk.Frame(root).grid()

btn = ttk.Button(frame, text="Sample", command=lambda: change_theme())
btn.grid(column=0, row=1)

root.mainloop()

取消注释这些样式获取并将'alt''clam'更改为'azure''azure_dark' ,它应该可以工作。

试试root.tk_setPalette( "#555555" )或任何你喜欢的颜色。

主题不会改变颜色,只会改变小部件 styles,尤其是Scrollbars

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM