Как изменить цвет кнопки ttk

Я использую Python 3.x для Windows.

Моя проблема в том, что я хочу настроить виджет кнопки ttk , полностью изменив его фон и цвет переднего плана. Но до сих пор я не увенчалась успехом.

Моя желаемая кнопка:

введите описание изображения здесь

Я прочитал руководство ttk.Style и использовал их код:

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

Но он меняет цвет границы, а не целую кнопку bakground. Вот результат:

введите описание изображения здесь

Пожалуйста, помогите мне достичь желаемой кнопки.

К сожалению, нет простого способа изменить передний план кнопки в библиотеке ttk . Это всегда стандартная серая Windows, как на картинке.

Но вы можете легко получить то, что хотите, с обычным tkinter.Button если вы установите правильные параметры. Ниже приведен пример сценария:

 import 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 следующим образом:

 >>> rgb = (183, 247, 49) >>> '#{:02x}{:02x}{:02x}'.format(*rgb) '#b7f731' >>> 
 import 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