Skip to content
Lasha Kandelaki edited this page May 7, 2026 · 6 revisions

CTkMaker

Drag-and-drop visual designer for CustomTkinter that exports clean Python code.

What is CTkMaker?

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.

📂 Project Structure

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.

The Two-Layer Model

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 (layout, colors, sizes).
  • Behavior Layer (.py file): Where you hand-code the logic (click handlers, animations).

Logic and Programming

  • 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., w.btn_save), eliminating the need for manual lookups.
  • Clean Python: Logic is written in a standard .py file, giving you full freedom to use if statements, 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.

Core Functionality

  • Widget Variety: A palette of 21 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 .ctkcomp component 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.

Navigate

Clone this wiki locally