Расширение для VS Code: визуальный редактор форм на tkinter
Разработка расширения для VS Code, которое предоставляет визуальный редактор форм для tkinter: пользователь может перетаскивать элементы интерфейса (drag-and-drop), редактировать их свойства, а затем получать готовый Python-код. Поддерживается обратная синхронизация — изменения в коде отражаются в визуальной форме. Это проект с погружением в VS Code API, работу с JSON, генерацию кода и особенностями GUI-библиотеки tkinter.
Предоплата 70 000 ₽
При идеальном результате могу вернуть более, чем внесённую сумму — 100 000 ₽Цель и задачи работы
Цель работы — создать расширение для Visual Studio Code, которое упрощает разработку интерфейсов на tkinter за счёт визуального редактора. Проект нацелен на объединение визуального построения форм с возможностью редактирования кода вручную, поддерживая двустороннюю синхронизацию между представлениями.
Основные задачи:
- Изучить API VS Code, возможности WebView и расширений.
- Исследовать структуру tkinter и особенности его layout-систем (pack, grid, place).
- Разработать структуру внутреннего представления формы и её сериализацию.
- Создать пользовательский drag-and-drop интерфейс с набором стандартных виджетов.
- Обеспечить генерацию валидного Python-кода и его обратную реконструкцию из JSON.
Содержание работы
- Ознакомиться с существующими GUI-конструкторами: PyQt Designer, Glade, PAGE, чтобы понять их сильные и слабые стороны.
- Изучить примеры расширений для VS Code, особенно с WebView и взаимодействием с файловой системой.
- Разработать JSON-схему для хранения формы: структура элементов, их атрибуты, расположение.
- Собрать визуальный редактор на HTML/CSS/JS (можно использовать готовые библиотеки типа Interact.js или Dragula).
- Реализовать транслятор JSON → tkinter-код и обратно (Python → JSON), включая вложенные элементы и layout-параметры.
- Настроить сохранение/загрузку форм из файлов в рабочей папке пользователя.
- Обеспечить обновление GUI в расширении при изменении кода (и наоборот, по возможности).
- Подготовить демо-проект — визуальный редактор + простая форма, собранная через него и работающая как Python-приложение.
Результат и критерии завершения работы
Ожидаемый результат — установленное расширение для VS Code, позволяющее создавать формы с помощью drag-and-drop интерфейса, генерирующее корректный tkinter-код. Визуальные изменения отражаются в коде и обратно. Работа сопровождается краткой документацией: как установить, как пользоваться, как подключить результат к своему проекту.
Задание считается завершённым, если:
- Расширение устанавливается и запускается в VS Code без ошибок.
- Реализован хотя бы базовый набор виджетов (Label, Entry, Button, Frame).
- Генерация Python-кода корректно отражает структуру формы.
- Есть пример использования с работающим tkinter-приложением.
- Проект оформлен в виде репозитория в Gitea, есть история коммитов, сделаны code review и внесены правки по ним.