关于python:如何更改ttk按钮的颜色

您所在的位置:网站首页 设置按钮的背景色和颜色怎么改 关于python:如何更改ttk按钮的颜色

关于python:如何更改ttk按钮的颜色

2024-06-14 08:03| 来源: 网络整理| 查看: 265

我在Windows上使用Python3.x。

我的问题是我想通过完全更改其背景和前景色来自定义ttk的按钮小部件。 但是到目前为止,我一直没有成功。

我想要的按钮是:

我阅读了ttk.Style指南并使用了它们的代码:

12345ttk.Style().configure("TButton", padding=6, relief="flat",    background="#000") btn = ttk.Button(text="Sample") btn.pack()

但是它改变了边框的颜色,而不是整个按钮的背景。 这是输出:

请帮助我实现所需的按钮。

相关讨论 这回答了你的问题了吗? Tkinter的TTK小部件忽略背景色?

不幸的是,没有一种简单的方法可以从ttk库中更改按钮的前景。就像您的图片一样,它始终是标准的Windows灰色。

但是,如果设置正确的选项,您可以使用普通的tkinter.Button轻松获得所需的内容。下面是一个示例脚本:

123456789101112import tkinter as tk root = tk.Tk() btn = tk.Button(root,                 bg='#000000',                 fg='#b7f731',                 relief='flat',                 text='hello button',                 width=20) btn.pack() root.mainloop()

这是它的样子:

另外,我选择的绿色只是我认为非常接近您想要的一个示例。但是您可以指定所需的任何十六进制颜色代码。如果需要将RGB值转换为十六进制,一个简单的技巧就是使用str.format,如下所示:

1234>>> rgb = (183, 247, 49) >>> '#{:02x}{:02x}{:02x}'.format(*rgb) '#b7f731' >>> 相关讨论 真的非常感谢,但是ttk有什么例子吗? 我想用ttk @iCodez来做 我不确定这是可能的(尽管我可能是错的)。 ttk.Button是一种特殊的按钮,旨在与标准Windows按钮相同。 如果您想要不同的外观,那么实际上没有理由使用ttk.Button。 普通的Tkinter按钮可以满足您的要求。 否则,您大约有三个选择:1)使用除Tkinter之外的其他GUI工具箱。 这可以是wxpython或Qt。 2)创建所需按钮的图像并使用它,或者3)更改ttk源代码以使用其他外观。 除此之外,最好的选择是使用常规的tkinter.Button。

尽管它不像Tk按钮那样简单,但它是可能的。在ttk中,如果将theme_use属性设置为以下任意一项:(" winnative"," clam"," alt"," default"," classic"," vista"," xpnative"),则应该可以进行修改默认行为。我设置了" style.map"属性,以避免由于鼠标悬停而导致背景颜色变化(按钮的状态始终为"活动")。

123456789101112import tkinter as tk from tkinter import ttk style = ttk.Style() style.theme_use('alt') style.configure('TButton', background = 'red', foreground = 'white', width = 20, borderwidth=1, focusthickness=3, focuscolor='none') style.map('TButton', background=[('active','red')]) root = tk.Tk() button = ttk.Button(root,text='Quit') button.place(relx=0.3,rely=0.4)   root.mainloop()

希望这可以帮助。

1234567import ttk root.style = ttk.Style() #root.style.theme_use("clam") style.configure('TButton', background='black') style.configure('TButton', foreground='green') button= ttk.Button(self, text="My background is black and my foreground is green.")

如果您想使用Python 2.7和Tkinter 8.6将所有按钮更改为您想要的按钮,则对我有用

相关讨论 这似乎与OP自己所做的相同。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3