Custom2kinter is a python UI-library based on Tkinter, which provides new, modern and fully customizable widgets. They are created and used like normal Tkinter widgets and can also be used in combination with normal Tkinter elements. The widgets and the window colors either adapt to the system appearance or the manually set mode ('light', 'dark'), and all Custom2kinter widgets and windows support HighDPI scaling (Windows, macOS). With Custom2kinter you'll get a consistent and modern look across all desktop platforms (Windows, macOS, Linux).
This project was created to continue the development of CustomTkinter,
since the original author lost interest in it. The first release of this library is v5.3.0,
which continues the old numeration, and it is fully compatible with the last released
version of the original library.
They can't live together in the same environment, so be sure to uninstall customtkinter
before installing custom2kinter. This library is still imported using the original
name, so existing code doesn't need to be updated.
| complex_example.py on Windows 11 with dark mode and 'blue' theme
| complex_example.py on macOS in light mode and standard 'blue' theme
Install the module with pip:
pip3 install custom2kinter
The official documentation can be found on Read the Docs:
To test custom2kinter you can try this simple example with only a single button:
import customtkinter as ctk
ctk.set_appearance_mode("system")
ctk.set_default_color_theme("blue")
# Create CTk window like you do with the Tk window
app = ctk.CTk()
app.geometry("400x240")
def button_callback() -> None:
print("button pressed")
# Use CTkButton instead of tkinter.Button
button = ctk.CTkButton(master=app, text="CTkButton", command=button_callback)
button.place(relx=0.5, rely=0.5, anchor=ctk.CENTER)
app.mainloop()which results in the following window on macOS:
In the examples folder, you can find more example programs and in the Documentation you can find further information on the appearance mode, scaling, themes and all widgets.
You can run the following code to show a simple App that displays all available widgets:
import customtkinter.utility.showroom as Showroom
Showroom.run()Custom2kinter can adapt to the Windows 10/11 light or dark mode:
complex_example_mode_switch_Windows.mp4
| complex_example.py on Windows 11 with system appearance mode change and standard 'blue' theme
On macOS you either need python3.10 or higher or the anaconda python version to get a dark window header (Tcl/Tk >= 8.6.9 required):
complex_example_mode_switch_scaling_macOS.mp4
| complex_example.py on macOS with system appearance mode change, user-scaling change and standard 'blue' theme
It's possible to put an image on a CTkButton. You just have to
pass a PhotoImage object to the CTkButton with the image argument.
If you want no text at all you have to set text="" or you specify
how to position the text and image at once with the compound option:
| image_example.py on Windows 11
Scrollable frames are possible in vertical or horizontal orientation and can be combined
with any other widgets.
| scrollable_frame_example.py on Windows 11


