100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > python ttk style_关于python:在ttk中更改“选项卡标题”的颜色。

python ttk style_关于python:在ttk中更改“选项卡标题”的颜色。

时间:2018-12-31 08:59:15

相关推荐

python ttk style_关于python:在ttk中更改“选项卡标题”的颜色。

问候!

我想更改在使用ttk.Notebook创建的选项卡标题中显示的颜色。

搜索一段时间后,我发现可以更改ttk小部件的样式,可以使用ttk。 样式,因为Notebook显然没有配置选项来更改其颜色。 但是,我只找到了如何更改笔记本对象的背景和前景,但没有找到如何配置"选项卡标题",其背景是白色(选中时)或灰色(选中时)。

有人可以帮助我吗?

这是我现在拥有的代码,与我要执行的操作相关

import Tkinter as tki

import ttk

...

##Other code. Not relevant here

...

#create tabs and associate the apropriate frames to it

tabs = ttk.Notebook(parent.master)

ttk.Style().configure("TNotebook", background=mainWcolor, foreground='green') #configure"tabs" background color

paramsFrame = tki.Frame(tabs, bg=mainWcolor) #frame with control parameters

comsFrame = tki.Frame(tabs, bg=mainWcolor) #frame with communication parameters.

ssInfoFrame = tki.Frame(tabs, bg=mainWcolor) #frame with start and stop messages and procedures

tabs.add(paramsFrame, text ="Control")

tabs.add(comsFrame, text ="Communications")

tabs.add(ssInfoFrame, text ="Start & Stop info")

tabs.pack()

提前致谢。

万一您还没有找到解决方案,我找到了一个可以帮助我的解决方案! 祝好运! /html/themes.html

您可以尝试创建自定义主题。

import tkinter as tk

from tkinter import ttk

root = tk.Tk()

mygreen ="#d2ffd2"

myred ="#dd0202"

style = ttk.Style()

style.theme_create("yummy", parent="alt", settings={

"TNotebook": {"configure": {"tabmargins": [2, 5, 2, 0] } },

"TNotebook.Tab": {

"configure": {"padding": [5, 1],"background": mygreen },

"map": {"background": [("selected", myred)],

"expand": [("selected", [1, 1, 1, 0])] } } } )

style.theme_use("yummy")

note = ttk.Notebook(root)

f1 = ttk.Frame(note, width=300, height=200)

note.add(f1, text = 'First')

f2 = ttk.Frame(note, width=300, height=200)

note.add(f2, text = 'Second')

note.pack(expand=1, fill='both', padx=5, pady=5)

tk.Button(root, text='yummy!').pack(fill='x')

root.mainloop()

编辑

最详细的ttk文档来自tcl / tk世界

例如。

http://www.tcl.tk/man/tcl/TkCmd/ttk_notebook.htm

对于一些有用的基于python的示例,您可以获取pyttk-samples包

来自/p/python-ttk/

很棒! 谢谢! 但是,我意识到代码有点"复杂"。 您已经回答了我的问题,但是现在我变得对了解您在这里所做的真正感兴趣。 如果是这样,您是否在此详细级别上参考过任何有用的文档来处理Notebook小部件? 我发现的教程没有描述这一详细级别。

ttk样式信息的另一个不错的来源是/tutorial/styles.html

感谢Ob灭和布莱恩!

如果我想在不同的选项卡中使用不同的颜色怎么办?

我已经使用Oblivion的答案已有一段时间了,但是遇到一个问题,其中打开/保存对话框按钮的轮廓消失了,并且文本小部件中的Checkbuttons似乎从未被检查过(即使被检查了)。因此,我将主题代码转换为某种样式配置,从而解决了该问题(它解决了问题)。这将使您可以更改选项卡栏颜色,选项卡背景/前景和活动选项卡背景/前景。另外,它不会对您选择的其余主题造成问题。从主题翻译过来的代码基本上是相同的代码。因此,实际上,《忘却》应该得到大部分荣誉。

Style().configure("TNotebook", background=myTabBarColor);

Style().map("TNotebook.Tab", background=[("selected", myActiveTabBackgroundColor)], foreground=[("selected", myActiveTabForegroundColor)]);

Style().configure("TNotebook.Tab", background=myTabBackgroundColor, foreground=myTabForegroundColor);

编辑:显然,此解决方案在Windows中不起作用。我在Linux(Xubuntu的多个版本)中进行了测试。

以上在Windows上对我不起作用。 我只看到前景色,而没有看到背景色。 我发现了该帖子(/questions/22389198/),该帖子解释了上述原因为何不起作用,并且它使我可以使其工作。

@ Gary02127那真是太好了。 我在Linux(几个版本的Xubuntu)的答案中使用了代码。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。