TKinter ttk.Notebook 小部件样式

问题描述

(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 (将#修改为@)