A visual, drag-and-drop tkinter GUI builder that runs online. Lay out windows, style them, and export clean, runnable Python. No boilerplate, no lock-in.
No account needed to design and download. Sign in free only when you want to save.
Place, resize, and align widgets on a true-to-tkinter canvas with snapping, zoom, and a live property inspector.
Every change generates idiomatic, class-based tkinter you can actually read. No runtime, no lock-in, just main.py.
Build login → main flows. Each form becomes its own window, wired together with open_<form>() helpers for you.
Toggle a ready-made Database class in a separate database.py, shared across your forms. Keep SQL out of your UI.
Apply colour templates and fonts across the whole project. Reflected live on the canvas and baked into the export.
Show a picture, pick a date from a calendar, open a file chooser or a yes/no box — the parts tkinter makes you look up, written for you.
Drop a chart on the window and get the FigureCanvasTkAgg embedding written for you, with a plot helper ready for your data.
Paste existing tkinter and keep editing it visually. Your handlers, imports, and helpers are preserved on export.
Buttons, entries, lists, frames, all grouped by purpose in the palette.
Tune each widget, pick a theme, and turn on the database layer if you need it.
Export main.py (and database.py) and run it with Python. That’s your app.
Most ways to build a Python tkinter interface mean hand-writing widget
coordinates, or installing a desktop tool. Tkinter Designer is a free online GUI builder:
open it in your browser, drag widgets onto a window, and it writes the tkinter code for
you. There’s nothing to install and no sign-up cost. You only need Python to run what you
export.
It’s built for real apps, not just mockups. Lay out forms with a drag-and-drop canvas,
wire multiple windows together (like a login screen that opens a main window), add an
optional SQLite data layer, and apply a colour theme, then download a clean, class-based main.py you fully own. Already have code? Paste your existing tkinter in and
keep editing it visually.
Want the modern look? The same canvas also exports CustomTkinter (rounded, flat, light-or-dark widgets) and ttkbootstrap, which re-themes the ttk widgets already in the standard library with Bootstrap-inspired palettes. Both come from the same design, so you can switch toolkit without redrawing anything.
In a hurry? Start from a ready-made tkinter template: a login form, calculator, to-do list, temperature converter, or quiz app. Edit one of those instead of starting from an empty window. For more detail, read the step-by-step guide to building a tkinter GUI online, or see what to look for in a tkinter GUI builder. Plotting data? There's a walkthrough of embedding a matplotlib chart in tkinter and the mistakes that usually come with it. For the questions that come up first — setting the window size, reading an Entry, opening a second window — the tkinter how-to pages answer each one in a screenful.
Yes, it’s completely free. You can design and download working Python without even making an account; a free sign-in is only needed if you want to save designs to reopen later. No credit card, no install, no trial limits.
No. The designer runs entirely in your browser. You only need Python installed to run the code you export.
Clean, class-based Python using standard tkinter and ttk. It’s a plain main.py you can read, edit, and run, with no framework or runtime lock-in.
Yes. Paste existing tkinter and keep editing it visually. Your place()-positioned widgets, event handlers, and imports are preserved when you export.
Yes. Build multi-window apps such as a login → main flow, and optionally generate a separate SQLite database.py that’s wired through your forms.
Yes. Switch the toolkit and the same design exports CustomTkinter code with modern rounded widgets and light or dark appearance, while the canvas previews how CTk will actually render it. Your widgets, layout and handler code carry across unchanged.
Yes. Switch the toolkit and the same design exports ttkbootstrap code, which re-themes the ttk widgets already in the standard library with Bootstrap-inspired palettes. Twenty-one of the twenty-five widgets map straight across, and because ttk takes colours from styles rather than constructor options, any per-widget colour you set is emitted as a named ttk style.
Yes. Tkinter has no chart widget, so the designer includes a matplotlib one: drag it on, choose line, bar or scatter, and set the title and axis labels. The export embeds it with FigureCanvasTkAgg, sizes the figure to the box you drew, and generates a plot_<name>(x, y) helper that redraws it from your data. It is the one widget needing a package outside the standard library — pip install matplotlib — and the project zip lists it in requirements.txt for you.
Yes. Drop an Image widget on the canvas and point it at a file. The export builds the PhotoImage, scales it to the box you drew, and — the part that catches everyone — keeps a reference to it on the instance, because an image held only by the widget is garbage-collected and the picture silently goes blank. Scaling and JPEG support use Pillow; a PNG at its original size needs nothing extra.
Yes. Buttons and menu items can open any of the standard tkinter dialogs — an info, warning or error box, a yes/no question, or a file open, save or folder chooser — instead of running your own function. The generated handler includes the part people forget: file choosers return an empty string when cancelled, so the code checks for it.
Yes. Tkinter has no date widget, so the designer uses tkcalendar on classic tkinter and CustomTkinter, and ttkbootstrap's own built-in DateEntry when you export for that toolkit — where it needs no extra package at all. Read the value with .get_date(), which returns a real datetime.date.
Yes. Switch on "Accept dropped files" for any widget and the export registers it as a drop target via tkinterdnd2, generating a handler that splits the dropped paths as a Tcl list so filenames containing spaces survive. Because tkinterdnd2 has to build the root window, the generated code does that too, using the documented mixin for CustomTkinter and ttkbootstrap.
Yes. Apply colour templates and fonts across the whole project, reflected live on the canvas and baked into the exported Python.
Open the designer, drag your first widget, and download clean Python in minutes.
Start building, no sign-up →