问题描述
(Windows 10,Python 3.8.5)
尝试更改 ttk.Notebook
小部件的外观时,是否只能选择创建自定义主题?我曾尝试在样式上使用 .configure
和 .map
并使用 .theme_settings
来尝试更改已经存在的主题,但它们似乎都没有更改背景颜色。
只是为了澄清,实际小部件的背景会改变,但选项卡本身的背景不会改变,即使样式名称是 TNotebook.Tab
奇怪的是所有其他选项都有效(也就是改变前景色)等)创建自定义主题似乎可行,但它也会在所有其他小部件上强制使用相同的主题,并使它们看起来非常难看。
示例代码:
import tkinter as tk
from tkinter import ttk
class Test(ttk.Frame):
def __init__(self,master = "None"):
super().__init__()
self.grid()
self.make_widgets()
def make_widgets(self):
self.notebookStyle = ttk.Style()
self.notebookStyle.configure("TNotebook",background = "red",foreground = "red")
self.notebookStyle.map("TNotebook.Tab",background = [("selected","red")])
self.notebookStyle.theme_use("vista")
self.notebookStyle.theme_settings("vista",{
"TNotebook.Tab": {"configure": {"background" : "red"},"map": {"background": [("selected","red")],"foreground": [("selected","red")]}}})
self.testNotebook = ttk.Notebook(self)
self.testNotebook.add(ttk.Button(self.testNotebook),text = "Test",padding = "1i")
self.testNotebook.grid()
root = tk.Tk()
app = Test(root)
app.mainloop()
(我也分别试过,没有一个成功)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)