Visual GUI Designer

MD Python Designer

LabDeck's drag-and-drop GUI builder โ€” also see the MD Python IDE layer it builds on.

Drag & drop Multi-framework Code generation

What Is MD Python Designer?

MD Python Designer is a commercial visual development environment from LabDeck (part of the MatDeck product family). Instead of hand-coding every widget and layout manager, you arrange GUI elements on a canvas, set properties in a panel, wire up event functions, and the tool generates the corresponding Python (or MatDeck script) source code for you.

It targets developers who want faster iteration on layout and appearance, teams where designers or analysts build the UI shell and programmers fill in logic, and learners who understand Python but find geometry managers confusing at first.

Not a runtime library

MD Python Designer is a design tool, not something you pip install into your app. Your shipped product uses the generated code with normal libraries (tkinter, PySide6, Kivy, etc.).

Supported GUI designers

The full MD Python Designer subscription includes multiple built-in designers โ€” one per target framework โ€” so you can pick the library that fits your project and still use the same visual workflow:

Designer modeGenerated code usesGuide on this site
TkinterStandard library tkinter / ttkTkinter guide
Custom Tkintercustomtkinter widgetsCustomTkinter guide
KivyKivy widgets (+ KV in some workflows)Kivy guide
PySide2Qt for Python (PySide2 API)PyQt / PySide guide
FletFlet controlsFlet guide
MD Python / MatDeck ScriptLabDeck's own scriptingMD Python guide

PySide2 is the Qt binding emphasized in LabDeck docs; generated code can often be adapted for PySide6/PyQt6 with import renames.

How the visual designer works

Although the exact UI varies by version, the workflow follows the same pattern as most GUI builders:

  1. Choose a designer โ€” e.g. Tkinter or Custom Tkinter mode.
  2. Place widgets โ€” drag buttons, labels, entries, containers, and other elements onto the form.
  3. Edit properties โ€” text, colors, sizes, fonts, and widget-specific options in a property inspector.
  4. Use containers โ€” frames and panels group widgets and control resizing behavior.
  5. Add event functions โ€” name callbacks (e.g. on_save_click) and attach them to buttons or other controls.
  6. Generate / export code โ€” the tool writes Python files you can run, edit, and version-control.
conceptual output (tkinter)
# MD Python Designer generates code similar to hand-written tkinter:
import tkinter as tk
from tkinter import ttk

class App(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title("Generated GUI")
        self._build_ui()
    def _build_ui(self):
        ttk.Label(self, text="Name").grid(row=0, column=0)
        self.name_entry = ttk.Entry(self)
        self.name_entry.grid(row=0, column=1)
        ttk.Button(self, text="Save", command=self.on_save_click).grid(row=1, column=1)
    def on_save_click(self):
        print(self.name_entry.get())

if __name__ == "__main__":
    App().mainloop()

Lite vs full MD Python Designer

FeatureLite MD Python DesignerFull MD Python Designer
PriceFree (limited)Paid subscription (LabDeck store)
Widgets on canvasLimited (e.g. up to 5 elements)Unlimited
GUI designers includedSubset of frameworksAll designers (Tk, CTk, Kivy, PySide2, Flet, โ€ฆ)
Specialized IDEsBasicFull Python IDEs per library
Advanced instrumentationNot includedVirtual instruments, 3D graphs (MatDeck features)
Best forLearning, tiny dialogsProfessional / production GUIs
Practical tip

Use Lite to learn how generated layout code maps to widgets. Move to the full version when you need more than a handful of controls or multiple framework designers in one project.

Typical workflow

1 ยท Design visually

Build forms, dialogs, and main windows by dragging widgets. Adjust alignment and spacing without touching pack() or grid() manually.

2 ยท Export Python

Generate `.py` files. Review and refactor โ€” treat output as a starting point, not immutable code.

3 ยท Add business logic

Implement event handlers, database access, and API calls in separate modules. Keep UI and logic separated (best practices).

4 ยท Ship with pip tools

Package with PyInstaller or briefcase like any other Python GUI app. MD Python Designer is not required at runtime.

Strengths & limitations

โœ“ Strengths

  • One tool, many Python GUI frameworks
  • Fast prototyping โ€” layout in minutes
  • Lowers barrier for non-expert GUI coders
  • Integrated LabDeck IDE and MatDeck features
  • Event functions scaffold callback structure

โœ— Limitations

  • Commercial product โ€” Lite is capped; full version is paid
  • Generated code may need cleanup for large apps
  • PySide2 focus โ€” may need manual updates for PySide6
  • Less common in open-source tutorials than Qt Designer
  • Round-trip editing (code โ†’ designer) is limited vs hand-written projects

When to use MD Python Designer

  • You want a single visual tool that can target Tkinter, CustomTkinter, Kivy, or Flet.
  • You are prototyping forms and prefer drag-and-drop over writing layout code.
  • You already use the MatDeck / LabDeck ecosystem for math, scripting, or instrumentation.
  • You teach GUI concepts and want students to see generated code alongside the visual layout.

Prefer hand coding or Qt Designer when you need maximum control, PySide6-native workflows, or fully free open-source tooling only.

Other Python GUI designers (alternatives)

ToolTypeFrameworksNotes
Qt DesignerFree with QtPyQt / PySideIndustry standard; .ui XML files
PAGEFreeTkinterPython Automatic GUI Generator
wxFormBuilderFreewxPythonVisual designer for wxWidgets
GladeFreeGTKGTK UI designer
PyDesigner (online)Free web appTkinter, CustomTkinter, PyQt5Browser-based, exports ZIP
MD Python DesignerCommercialTk, CTk, Kivy, PySide2, FletMulti-framework LabDeck suite

Official resources