Python3.10运行Tkinter默认启用深色主题,如何改回标准浅色主题?
Tkinter Python3.10 深色主题改回浅色方案
问题原因
Python 3.10 配套的 Tk 组件版本升级至 8.6.12 以上,新增了系统主题自动适配能力,会跟随 Windows、macOS 系统的全局深色/浅色模式自动切换界面样式,你遇到的深色界面就是 Tk 匹配系统深色模式的默认行为。
修复方案
方案1:手动指定所有组件浅色背景
直接在代码中显式设置根窗口、框架、画布等组件的背景色为旧版本默认的浅色值,修改后的代码如下:
from tkinter import * root = Tk() # 设置根窗口背景为默认浅色 root.configure(bg="#f0f0f0") class Something: def __init__(self, parent, col, row): # 给画布添加浅色背景配置 canvas = Canvas(parent, bd=1, relief=SOLID, highlightthickness=0, width=30, height=30, bg="#f0f0f0") canvas.grid(column=col, row=row) # 给框架添加浅色背景配置 frame = Frame(root, bd=1, relief=SOLID, bg="#f0f0f0") frame.grid(padx=50, pady=50) for i in range(11): for j in range(11): Something(frame, i, j) root.mainloop()
其中#f0f0f0是旧版本 Tkinter 组件的默认背景色,和之前的浅色主题完全一致。
方案2:全局关闭Tk的深色模式适配
不需要逐个修改组件,在根窗口初始化后添加对应系统的适配关闭代码即可:
- Windows 系统添加:
root.tk.call("set", "::tk::windows::DarkMode", 0) - macOS 系统添加:
root.tk.call("set", "::tk::mac::UseDarkMode", 0)
方案3:修改系统全局主题
如果希望所有 Tkinter 程序都默认使用浅色主题,直接把操作系统的全局主题切换为浅色模式,Tkinter 会自动同步样式。
内容的提问来源于stack exchange,提问作者Zaga88
相关产品推荐
相关产品推荐

