【问题标题】:How to switch between dark and light ttk theme?如何在深色和浅色 ttk 主题之间切换?
【发布时间】: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


【解决方案1】:

这是一个带有默认样式的小例子:

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',它应该可以工作。

【讨论】:

  • 同样的问题。 :Here
  • style 参数接受 str 类型,在将 azurealt 传递给 style 时,会引发错误 Layout alt not found
  • 这个怎么样? (对答案进行了更改)
  • 大声笑。改变它的背景颜色。谢谢
  • 我相信这可以通过某种方式改变样式值来做得更好,但这至少可以完成工作:D
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 2021-06-04
    • 2021-03-10
    • 2013-10-16
    • 1970-01-01
    相关资源
    最近更新 更多