[英]How to change ttk button background and foreground when hover it in tkinter
我正在尝试将ttk.tkinter
按钮背景更改为黑色,当鼠标为 hover 时将前景色更改为白色。 尝试过highlightbackground
和activebackground
但没有产生我正在寻找的结果。
import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
style = ttk.Style(root)
#style.theme_use("clam")
style.configure('TButton', foreground="black", highlightthickness=5,
highlightbackground='#3E4149', highlightforeground="white",
activebackground="black")
btr = ttk.Button(root, text="TEST BUTTON")
btr.pack()
root.mainloop()
ttk 按钮外观由主题驱动(3D/Color-alt/classic/default、Color-clam)。 不设置/其他使按钮平坦/灰色,设置不会改变事情。 要使 ttk TButton 更改颜色,可以使用 map 来实现。 3D 外观需要borderwidth.Only Classic 使用highlight 形成一个外环。 类似的答案请参阅: Python:根据当前颜色更改 ttk 按钮颜色?
import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
style = ttk.Style()
style.theme_use("classic")
style.map("C.TButton",
foreground=[('!active', 'black'),('pressed', 'red'), ('active', 'white')],
background=[ ('!active','grey75'),('pressed', 'green'), ('active', 'black')]
)
btr = ttk.Button(root, text="TEST BUTTON", style="C.TButton")
btr.grid(column=0,row=0,sticky='nsew');
root.mainloop()
尝试按照您的风格使用 map 函数,如下所述:
https://docs.python.org/3/library/tkinter.ttk.html
import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
style = ttk.Style(root)
#style.theme_use("clam")
style.map("C.TButton",
foreground=[('pressed', 'red'), ('active', 'blue')],
background=[('pressed', '!disabled', 'black'), ('active', 'white')]
)
btr = ttk.Button(root, text="TEST BUTTON", style="C.TButton")
btr.pack()
root.mainloop()
使用按钮注册样式映射。
我希望这有帮助。
你必须试试这个 在我学习这个代码之前我遇到了这个问题
import tkinter
from tkinter import ttk
from tkinter import *
import tkinter.ttk
f=Tk()
style = ttk.Style()
style.configure("BW.TLabel", foreground="blue",
background="red")
l1 = ttk.Label(f,text="Test", style="BW.TLabel")
l2 = ttk.Label(f,text="Test", style="BW.TLabel")
l1.pack()
l2.pack()
f.mainloop(
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.