-
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Lasha Kandelaki edited this page May 19, 2026
·
6 revisions
Drag-and-drop visual designer for CustomTkinter that exports clean Python code.
CTkMaker is a professional visual designer for the CustomTkinter library. It allows you to build interfaces using a visual "Drag-and-Drop" principle instead of writing UI code by hand, which ultimately exports into a clean and functional Python file.
Projects are organized into four distinct levels:
- Project: A folder containing pages and shared assets (fonts, images).
- Page: A single design file (e.g., a Login or Settings page).
- Window: A window within a page—either the Main window or a Dialog (Toplevel).
- Widget: The actual elements like buttons, entries, frames, etc.
This is the core philosophy of the software. The app is divided into two parts connected by widget names:
- Visual Layer (Builder): Where you define the look, the widget tree, variables, event bindings, and object references.
- Behavior Layer (.py file): Where you hand-code the logic (click handlers, validation, navigation between windows).
- Visual Scripting: You can define Events directly in the builder, and the program automatically generates function "stubs" in a separate file.
-
Widget Access: You can reference any element in your code by its name (e.g.,
self.btn_save), eliminating the need for manual lookups. -
Library Scripts: Drop shared helpers (
helpers.py,services/auth.py, …) intoassets/scripts/<page>/and import them from any behavior file in the same page; events can also call a library function directly via the target picker. -
Clean Python: Logic is written in a standard
.pyfile, giving you full freedom to useifstatements,def, loops, and any external libraries. - Flexible Editing: Switch to your favorite editor (VS Code, Notepad++, IDLE) with a single click to find your ready-to-use code.
- Widget Variety: A palette of 22 widget types is available (Button, Card, Progress Bar, Tab View, and more).
- Variables and Bindings: Create global or local variables and bind them to widget properties with one click.
-
Component Library: Save any custom-built element as a
.ctkcompcomponent to reuse in other projects or share on the Community Hub. -
Comment System: Every widget has a description field that can be used for:
- Notes: Keeping track of ideas and future plans.
- Teaching: Providing guided instructions for students learning to program.
- AI Bridge: Exporting descriptions as Python comments so an AI (like ChatGPT) can generate the logic for you.
Why CTkMaker?
Hand-coding a UI is slow and tedious. The builder handles the boilerplate, while leaving the logic exactly where it belongs: in a normal Python file that you have full control over.
- Getting-Started — install and first run
- User-Guide — interface, workspace, properties, export
- Widgets — per-widget property reference, layouts, and custom widgets
- How Programming Works — the single map of how the visual layer wires into Python
- Variables · Object-References · Event Handlers · Scripts Panel — visual scripting, each piece in depth
- Components — save and reuse widget bundles across projects
- Keyboard-Shortcuts — full cheat sheet
- Reporting Bugs — submit a bug or feature request