How to change the color of everything in a Tkinter GUI?

Customizing the appearance of a graphical user interface (GUI) is a powerful way to create visually appealing and cohesive applications. Tkinter, Python's built-in GUI library, provides flexibility in altering the color scheme of your entire application. In this article, we will explore how to change the color of everything in a Tkinter GUI, including windows, widgets, buttons, and labels.

Understanding Tkinter's Color System

Tkinter recognizes colors in several formats:

  • Color names: "red", "blue", "lightblue", "darkgreen"
  • Hex values: "#FF0000" (red), "#0000FF" (blue)
  • RGB tuples: (255, 0, 0) for red

Changing Individual Widget Colors

To change the color of individual widgets, use the config() method with bg (background) and fg (foreground/text) parameters ?

import tkinter as tk

# Create the Tkinter application
root = tk.Tk()
root.geometry("400x300")
root.title("Changing Widget Colors")

# Create a Button widget with custom colors
button = tk.Button(root, text="Click Me", bg="red", fg="white", font=("Arial", 12))
button.pack(pady=20)

# Create a Label with custom colors
label = tk.Label(root, text="Custom Label", bg="yellow", fg="black", font=("Arial", 14))
label.pack(pady=10)

# Run the Tkinter event loop
root.mainloop()

The output shows a red button with white text and a yellow label with black text.

Changing the Entire GUI Color Scheme

To apply a consistent color scheme across all widgets, configure the root window and set default colors ?

import tkinter as tk

# Create the Tkinter application
root = tk.Tk()
root.geometry("400x300")
root.title("Entire GUI Color Change")

# Configure the background color of the root window
root.configure(bg="lightblue")

# Create multiple widgets that inherit the color scheme
label1 = tk.Label(root, text="Label 1", bg="lightblue", fg="darkblue")
label1.pack(pady=10)

label2 = tk.Label(root, text="Label 2", bg="lightblue", fg="darkblue")
label2.pack(pady=5)

button = tk.Button(root, text="Submit", bg="darkblue", fg="white")
button.pack(pady=10)

entry = tk.Entry(root, bg="white", fg="black")
entry.pack(pady=5)

# Run the Tkinter event loop
root.mainloop()

This creates a cohesive blue-themed interface where all widgets follow the same color scheme.

Using a Color Theme Function

For better organization, create a function to apply consistent colors across your application ?

import tkinter as tk

def apply_dark_theme(widget):
    """Apply dark theme colors to widgets"""
    if isinstance(widget, tk.Tk) or isinstance(widget, tk.Toplevel):
        widget.configure(bg="#2b2b2b")
    elif isinstance(widget, tk.Label):
        widget.configure(bg="#2b2b2b", fg="#ffffff")
    elif isinstance(widget, tk.Button):
        widget.configure(bg="#404040", fg="#ffffff", activebackground="#555555")
    elif isinstance(widget, tk.Entry):
        widget.configure(bg="#404040", fg="#ffffff", insertbackground="#ffffff")

# Create the main window
root = tk.Tk()
root.geometry("400x300")
root.title("Dark Theme Example")

# Apply theme to root
apply_dark_theme(root)

# Create widgets
title_label = tk.Label(root, text="Dark Theme GUI", font=("Arial", 16, "bold"))
apply_dark_theme(title_label)
title_label.pack(pady=20)

name_label = tk.Label(root, text="Enter your name:")
apply_dark_theme(name_label)
name_label.pack(pady=5)

name_entry = tk.Entry(root)
apply_dark_theme(name_entry)
name_entry.pack(pady=5)

submit_button = tk.Button(root, text="Submit")
apply_dark_theme(submit_button)
submit_button.pack(pady=20)

root.mainloop()

This approach creates a professional dark theme that can be easily applied to any widget.

Color Scheme Comparison

Method Best For Flexibility
Individual widget config Custom styling per widget High
Root window configure Simple uniform background Low
Theme functions Consistent professional themes Medium

Common Color Properties

  • bg/background: Widget background color
  • fg/foreground: Text color
  • activebackground: Color when widget is active
  • activeforeground: Text color when active
  • selectbackground: Selection highlight color

Conclusion

Changing colors in Tkinter requires using the config() method for individual widgets or creating theme functions for consistent styling. Use color names, hex codes, or RGB values to achieve your desired appearance and create professional-looking GUI applications.

Updated on: 2026-03-27T16:04:24+05:30

4K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements