2014-12-07 4 views
6

Windows에서 Python 3.x를 사용하고 있습니다.ttk 버튼의 색상을 변경하는 방법

내 문제는 배경과 전경색을 완전히 변경하여 ttk의 버튼 위젯을 사용자 정의하고 싶습니다. 그러나 지금까지 나는 실패했다.

내 원하는 버튼은 다음과 같습니다

enter image description here

은 내가 ttk.Style 가이드를 읽고 자신의 코드 사용 :

ttk.Style().configure("TButton", padding=6, relief="flat", 
    background="#000") 

btn = ttk.Button(text="Sample") 
btn.pack() 

을하지만 대신 전체 버튼 bakground의 테두리 색상을 변경합니다. 여기 출력은 다음과 같습니다

enter image description here

이 친절하게 내 원하는 버튼을 달성하는 데 도움이.

답변

7

불행히도 ttk 라이브러리에서 버튼의 전경을 쉽게 변경할 수있는 방법은 없습니다. 사진에서와 같이 항상 표준 Windows 회색입니다.

올바른 옵션을 설정하면 보통 tkinter.Button으로 원하는 것을 쉽게 얻을 수 있습니다. 또한 enter image description here

, 내가 고른 녹색의 그늘 내가 아주 가까이 줄 알았는데 그냥 예를 들어 하나 : 여기

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() 

그리고 그것은 어떻게 보일까됩니다 : 다음 예제 스크립트입니다 당신이 원하는대로. 그러나 원하는 16 진수 색상 코드를 지정할 수 있습니다. 당신이 16 진수로 RGB 값을 설정해야하는 경우, 간단한 트릭과 같이 str.format을 사용하는 것입니다 나를 위해

>>> rgb = (183, 247, 49) 
>>> '#{:02x}{:02x}{:02x}'.format(*rgb) 
'#b7f731' 
>>> 
+0

정말 고마워요.하지만 ttk가있는 예제가 있습니까? – maq

+0

나는 ttk @iCodez로 해보고 싶다. – maq

+0

나는 이것이 가능하다고 확신하지 못한다. 'ttk.Button'은 표준 윈도우 버튼과 동일하게 디자인 된 특별한 종류의 버튼입니다. 다른 모습을 원하면'ttk.Button'을 사용할 이유가 없습니다. 일반 Tkinter 버튼은 원하는대로 작동합니다. – iCodez

2
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

관련 문제