대부분의 위젯은 배경(bg)과 전경(fg) 속성을 사용하여 위젯 및 텍스트 색상을 지정할 수 있습니다. 색을 지정하려면 색상 이름(영어)을 사용하면 됩니다.
예를 들어서 red, white, blue와 같은 색상의 이름을 사용하면 됩니다. tkinter는 일반적인 색상 이름뿐만 아니라 Moccasin(#ffe4b5), PeachPuff(#ffdab9)와 같은 이국적인 이름도 기억하고 있습니다.
윈도우 및 매킨토시 시스템에서의 색상 이름 테이블도 tkinter에 내장되어 있습니다.
버튼의 배경색과 전경색은 다음과 같은 형식으로 변경이 가능합니다.
from tkinter import *
window = Tk()
button = Button(window, text="버튼을 클릭하세요.")
button.pack()
button["fg"] = "yellow"
button["bg"] = "green"
window.mainloop()
<실행 결과>

또 다른 방법은 "#ff0000"과 같은 형식으로 RGB 값을 16진수로 표시하는 방법입니다.
...
button["fg"] = "#ff0000"
button["bg"] = "#00ff00"
,,,
<실행 결과>

tkinter.colorchooser 모듈의 askcolor()를 호출하려면 대화 상자를 통하여 색상의 값을 입력받을 수 있습니다.
import tkinter.colorchooser
color = tkinter.colorchooser.askcolor()
print(color)
<실행 결과>

((160.625, 160.625, 160.625), '#a0a0a0')
텍스를 표시하는 위젯을 사용할 때, 우리는 폰트를 지정할 수 있습니다. 모든 위젯은 디폴트 폰트를 가지고 있기 때문에 레이블과 버튼 등 간단한 요소에서는 폰트를 지정할 필요는 없습니다.
물론 얼마든지 폰트를 변경하여도 됩니다.
Tk 8.0부터는 플랫폼 독립적인 폰트 기술자를 지원합니다. 폰트를 튜플로 지정할 수 있는데 여기에는 (폰트 이름, 폰트의 크기, 폰트 스타일) 과 같은 형식을 사용합니다.
예를 들면 아래와 같습니다.
("Times", 10, "bold")
("Helvetica", 10, "bold italic")
("Symbol", 8)
거의 모든 위젯이 font라는 속성을 가지고 있습니다. 이것을 변경하면 폰트가 변경됩니다.
아래의 예제는 레이블 위젯의 폰트를 ("Helvetica", 16)으로 변경하여 화면에 표시하는 코드입니다.
from tkinter import *
window = Tk()
w = Label(window, text = "Helvetica", font = ("Helvetica", 16))
w.pack()
window.mainloop()
<실행 결과>

폰트는 문자열로도 지정이 가능합니다. 문자열 "Helvetica 16"은 ("Helvetica", 16)과 같은 의미입니다.
폰트도 미리 객체로 생성해놓고 여러 곳에서 사용하면 메모리를 절약할 수 있습니다.
간단한 예제로 첫 번째 버튼을 누르면 레이블의 폰트가 작아졌다가 두 번째 버튼을 누르면 폰트가 커지는 프로그램을 작성해봅시다.
import tkinter as tk
import tkinter.font as font # tkinter.font를 font로 접근합니다.
class App:
def __init__(self):
root = tk.Tk()
self.customFont = font.Font(family = "Helvetica", size = 12)
buttonframe = tk.Frame()
label = tk.Label(root, text = "Hello, World!", font = self.customFont)
buttonframe.pack()
label.pack()
bigger = tk.Button(root, text="폰트를 크게", command=self.BigFont)
smaller = tk.Button(root, text="폰트를 작게", command=self.SmallFont)
bigger.pack()
smaller.pack()
root.mainloop()
def BigFont(self): # 폰트를 크게 하는 메소드입니다.
size = self.customFont['size']
self.customFont.configure(size = size + 2)
def SmallFont(self): # 폰트를 작게 하는 메소드입니다.
size = self.customFont['size']
self.customFont.configure(size = size - 2)
app = App()
<실행 결과>
->
-> 
폰트 객체는 font.Font(family = "Helvetica", size = 12) 를 호출하면 생성됩니다. 생성된 폰트의 속성을 변경하려면 폰트 객체의 configure() 메소드를 호출합니다.