Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>Tkinter Form DesignerNew to Visual Studio Code? Get it now.
Tkinter Form Designer

Tkinter Form Designer

lobanovjohny

|
16 installs
| (0) | Free
| Sponsor
Визуальный конструктор форм для Python + Tkinter (как в Delphi / Visual Studio)
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Tkinter Form Designer — расширение VS Code

Визуальный конструктор форм для Python + Tkinter, как в Delphi или Visual Studio. Открывается окно-холст, на который мышью накидываются элементы, у каждого настраиваются свойства и события, а кнопкой «Выгрузить в Python» форма сохраняется в готовый .py файл.

Возможности

  • Палитра из 14 элементов: Label, Button, Entry, Text, Checkbutton, Radiobutton, Listbox, Combobox, Spinbox, Scale, Progressbar, Frame, LabelFrame, Canvas.
  • Перетаскивание элементов на форму, перемещение и изменение размера мышью (с привязкой к сетке 5 px).
  • Современный дизайн (modern) — генерируется код на ttk с темой clam, плоскими кнопками, акцентным цветом, шрифтом Segoe UI и отступами вместо стандартного «дефолтного» вида Tkinter. Переключатель Дизайн: modern / classic в свойствах формы; превью на холсте сразу меняет вид.
  • Акцентные кнопки (свойство «Акцентная») и настраиваемый акцентный цвет формы.
  • Вложенность в контейнеры: элементы, помещённые внутрь Frame / LabelFrame, автоматически становятся их дочерними виджетами с относительными координатами.
  • Меню окна: строки вида Файл | Создать=on_new; -; Выход=on_exit превращаются в полноценный menubar с командами.
  • Инспектор свойств: имя переменной, положение/размер, цвет фона и текста, шрифт (семейство, размер, жирный/курсив), состояние, рамка, текст/заголовок и специфичные для элемента свойства.
  • Вкладка События: command для кнопок/чек-боксов/ползунков и привязка событий через bind (<Button-1>, <Return>, <<ComboboxSelected>> и т.д.). Клик по пустому полю события автоматически создаёт имя обработчика (<имя>_<событие>); пустой метод появляется в сгенерированном коде.
  • Дерево элементов с быстрым выбором и удалением.
  • Несколько форм (окон) в одном проекте — вкладки форм над холстом (+ добавляет, ✕ удаляет). У каждой формы свои элементы, свойства и заголовок.
  • Кнопка-дискета 💾 в панели: неактивна, пока нет изменений, и подсвечивается при правках; клик сохраняет проект (в режиме файла — это Ctrl+S).
  • WYSIWYG: размер холста точно равен клиентской области окна (заголовок окна вынесен за пределы холста), поэтому позиции и размеры элементов совпадают с запуском.
  • Уникальность имён: при сохранении проекта и выгрузке в Python проверяется, что нет форм с пустым или совпадающим заголовком (иначе — ошибка, дубликаты подсвечены красным на вкладках).
  • Выгрузить в Python — каждая форма сохраняется в отдельный файл {Заголовок формы}.py (одна форма — обычный диалог сохранения; несколько — выбор папки). Генерируется класс-наследник tk.Tk с place()-разметкой.
  • Редактирование форм прямо в редакторе: файлы *.tkform.json открываются как визуальный редактор (двойной клик в проводнике или ПКМ → «Открыть в конструкторе Tkinter»). Правки отражаются в документе, сохранение — обычным Ctrl+S (с индикацией несохранённых изменений).

Запуск (режим разработки)

  1. Откройте эту папку в VS Code.
  2. Нажмите F5 (конфигурация «Запустить расширение») — откроется новое окно Extension Development Host.
  3. Вызовите палитру команд Ctrl+Shift+P → «Tkinter: Открыть конструктор форм» (или нажмите значок 🪟 на левой панели → «Открыть конструктор»).
  4. Накидайте элементы, настройте свойства, нажмите «Выгрузить в Python» и выберите, куда сохранить .py.

Повторное редактирование формы

Нажмите «Сохранить проект…» — получите файл *.tkform.json. В дальнейшем двойной клик по этому файлу в проводнике откроет его как визуальный редактор: меняйте форму и сохраняйте Ctrl+S. Так можно вернуться к ранее созданной форме, доработать её и заново выгрузить в Python.

Структура

Файл Назначение
package.json Манифест расширения и команда
extension.js Точка входа: webview, диалоги сохранения/открытия
media/index.html Разметка конструктора
media/style.css Стили интерфейса и визуализация виджетов
media/main.js Логика дизайнера и генератор Python-кода
test/run-codegen.js Дымовой тест генератора (node test/run-codegen.js)

Пример сгенерированного кода

import tkinter as tk
from tkinter import ttk


class DemoApp(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title("DemoForm")
        self.geometry("500x380")
        self.create_variables()
        self.create_widgets()

    def create_widgets(self):
        self.btnOk = tk.Button(self, text="OK", command=self.on_ok)
        self.btnOk.place(x=110, y=60, width=90, height=28)

    def on_ok(self):
        print("on_ok вызван")


if __name__ == "__main__":
    app = DemoApp()
    app.mainloop()

Сборка .vsix (опционально)

npm install -g @vscode/vsce
vsce package

Полученный .vsix ставится через Extensions → … → Install from VSIX.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft