如何更改tkinter ttk笔记本背景色(Python)?

时间:2018-03-11 07:43:30

标签: python tkinter colors ttk

我正在尝试更改我的python 应用程序中 Notebook窗口小部件的背景颜色,使其与蓝色匹配而不是白色。

我已经尝试了几个小时但却无济于事。它不起作用,因为我正在使用Mac吗?

tabs_notebook = ttk.Notebook(self)
tabs_notebook.configure(bg=DARKBLUE)
tabs_notebook.pack()

view_tab = ttk.Frame(tabs_notebook)
new_tab = ttk.Frame(tabs_notebook)
tabs_notebook.add(view_tab, text="View Patient Details")
tabs_notebook.add(new_tab, text="Add New Patient")

SCREENSHOT OF THE PROBLEM

1 个答案:

答案 0 :(得分:2)

对Tk的一个主要抱怨是它很难看。这主要是因为它永远不适合托管环境的原生外观和感觉,因为提供的配置选项数量意味着应用程序开发人员倾向于推出自己的风格,这种风格永远不适合任何其他应用程序。另一个问题是,在Windows和MacOS上,Tk使用朴素渲染API来绘制按钮和其他UI元素,但是当这些平台引入它们时却无法跟上。因此,即使Tk应用程序在默认的Windows XP上看起来没问题,它也会显示用户选择备用主题的位置。

因此,在开发ttk(主题Tk)时,主要设计目标之一是确保默认主题适合当前平台。在Windows和MacOS上,这意味着使用本机主题API绘制UI元素。在Linux上 - 它只需要做出最好的猜测。

在特定情况下,笔记本元素是使用MacOS主题API调用绘制的,您无法从Tk更改此主题的颜色。但是,您可以做的是定义整个Tk主题。 Tk代码中有一些例子可以做到这一点,有些人是imported to Python。那些应该足够产生使用Tk绘图API生成新主题,并且可能为某些元素生成图像,以便在需要大量自定义时允许完全自定义主题。