Creating a ttk.Treeview causes CustomTkinter widgets to lose their custom rendering on Python 3.14.4
Author: leninnairCreated Jul 13, 2026Updated Jul 14, 2026
Environment
OS: Windows 11 (64-bit)
Python: 3.14.4 Tkinter: Tk 8.6 CustomTkinter: 6.0.0
Name: customtkinter Version: 6.0.0
Description
Creating a standard tkinter.ttk.Treeview inside a CTk application causes all existing CustomTkinter widgets (buttons, labels, option menus, etc.) to lose their CustomTkinter appearance.
The issue occurs immediately after creating the Treeview. The Treeview does not even need to be packed or gridded.
This happens with a minimal reproducible example.
Minimal reproducible example
import customtkinter as ctk
import tkinter.ttk as ttk
ctk.set_appearance_mode("Dark")
app = ctk.CTk()
app.geometry("800x500")
sidebar = ctk.CTkFrame(app, width=200)
sidebar.pack(side="left", fill="y")
ctk.CTkButton(
sidebar,
text="Button"
).pack(pady=20)
main = ctk.CTkFrame(app)
main.pack(side="left", fill="both", expand=True)
# Creating the Treeview is enough
tree = ttk.Treeview(main)
app.mainloop()Expected Behavior
The CTkButton should retain its normal CustomTkinter appearance:
- Rounded corners
- Proper padding
- Correct text rendering
- CustomTkinter styling
Actual Behavior
Immediately after creating the Treeview:
- CTkButton loses its rounded appearance.
- Button text appears inside a small white rectangle.
- Other CTk widgets (labels, option menus, etc.) also lose their styling.
- The application appears to fall back to native Tk rendering.
The issue occurs even if the Treeview is never packed or gridded.
Additional Information
- The issue is reproducible in a minimal example.
- It is not related to:
- ttkbootstrap
- grid layout
- CTkScrollableFrame
- Treeview size
- Replacing the Treeview with a standard tk.Text widget does not reproduce the issue.
Screenshot
Source: TomSchimansky/CustomTkinter