[英]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.