簡體   English   中英

如何在hover it in tkinter時更改ttk按鈕背景和前景

[英]How to change ttk button background and foreground when hover it in tkinter

我正在嘗試將ttk.tkinter按鈕背景更改為黑色,當鼠標為 hover 時將前景色更改為白色。 嘗試過highlightbackgroundactivebackground但沒有產生我正在尋找的結果。

所需的按鈕圖像

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(

你必須在 python.org 網站上看到這個文檔[[它會讓你學到很多我寫的東西1 ] 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM