Вторая часть серии о среде разработки Toolbox IDE в TSMaster: проектирование интерфейсов на Python. Разберём минимальный цикл разработки окна Toolbox — от проверки Python-окружения до автономного запуска окна из VS Code.

Ключевые слова: TSMaster, Toolbox, IDE, Python, TSForm, VS Code.

1. Создание окна

1.1. Проверка Python-окружения

Откройте TSMaster и перейдите на страницу «Инструменты» → «Информация о системе» → «Настройки среды Python». Здесь выбирается среда выполнения Python x86 или x64: актуальные версии TSMaster поддерживают обе — настройте ту, что соответствует разрядности разрабатываемой программы (рис. 1-1).

Настройки среды Python
Рис. 1-1. Страница настроек среды Python

В поле конфигурации x86 по умолчанию указан встроенный Python TSMaster (3.8.5) с полным путём к интерпретатору.

1.2. Кнопки конфигурации

Справа от поля конфигурации — 5 кнопок:

  1. Выбор Python-окружения. Открывает диалог выбора другого интерпретатора: например, если на компьютере установлен Python 3.9, среду TSMaster можно переключить на него. После выбора появится подсказка — перезапустите TSMaster, и на странице настроек в выводе командной строки Python отобразятся версия и время сборки интерпретатора (рис. 1-2).
  2. Открыть папку среды Python — открывает основную папку интерпретатора.
  3. Переустановка библиотеки поддержки TSMaster для текущей среды: нужна после обновления TSMaster или случайного удаления файлов пакета. После нажатия появится сообщение «Пакет поддержки TSMaster установлен».
  4. Восстановление пути к интерпретатору по умолчанию — одним нажатием возвращает исходный Python 3.8.5.
  5. Тест библиотеки поддержки TSMaster — выводит имена API-функций пакета; сообщение об успехе означает, что библиотека работоспособна.
Выбор интерпретатора
Рис. 1-2. Выбор другого интерпретатора Python

1.3. Создание окна Toolbox

Откройте приложение «Среда проектирования Toolbox». Первая страница — список существующих Toolbox. Кнопкой «+» на панели инструментов создайте новый Toolbox и введите имя, например toolbox; после нажатия Enter Toolbox создан (рис. 1-3).

Создание Toolbox
Рис. 1-3. Создание нового Toolbox

Двойной щелчок по строке toolbox1 открывает область управляющего кода: код определяет класс toolbox1, унаследованный от внутренней формы TSMaster TSForm. В инициализации одна строка — установка Caption; это пустое окно. Нажмите «Запустить» или F9 — код выполнится, и появится пустое окно Toolbox (рис. 1-4).

Код пустого окна
Рис. 1-4. Код пустого окна Toolbox

2. Изменение свойств окна

Нажмите кнопку окна на панели инструментов, чтобы запустить дизайнер интерфейса. Реализуем простую функцию: по нажатию кнопки заголовок окна меняется на Hello World.

  1. Шаг 1. На странице элементов выберите в списке первую строку — Button, щёлкните, затем щёлкните по области окна: кнопка создана и остаётся выделенной (рис. 2-1).
  2. Шаг 2. Нажмите F11 или вкладку «Свойства» справа: имя кнопки по умолчанию — Button1; измените Name на btnTitle, а Caption — на Set Title (рис. 2-2).
  3. Шаг 3. Для предпросмотра перейдите на вкладку конфигурации окна компонентов: там две кнопки генерации кода — первая только генерирует Python-код, вторая генерирует код и сразу запускает окно (при этом редактор закрывается).
Дизайнер интерфейса
Рис. 2-1. Добавление кнопки в дизайнере
Свойства кнопки
Рис. 2-2. Свойства кнопки: Name и Caption

3. Генерация кода

3.1. Новые настройки свойств

В области кода Toolbox появились блоки настройки свойств окна, создания кнопки и её свойств. Код состоит из двух частей: функции init и пользовательских определений. Важно: код между двумя зелёными строками-комментариями генерируется и контролируется дизайнером — не редактируйте его вручную, любые правки будут перезаписаны при следующей генерации (рис. 3-1).

Сгенерированный код
Рис. 3-1. Сгенерированный дизайнером код

Для редактирования рекомендуется профессиональный внешний редактор — VS Code.

3.2. Обработчик события

  1. Шаг 1. В функции инициализации свяжите событие нажатия кнопки с обработчиком. Сначала определите функцию — например, ниже тела init напишите def OnSetTitleClick. Первый параметр UI-событий — всегда sender, источник события, поэтому у таких функций есть как минимум один параметр (рис. 3-2).
  2. Шаг 2. В обработчике установите self.Caption текущего окна в Hello World.
  3. Шаг 3. Свяжите событие self.btnTitle.OnClick с обработчиком OnSetTitleClick — код готов (рис. 3-3).
  4. Шаг 4. Вернитесь в TSMaster: после щелчка по полю редактирования файл обновится до последней версии. Нажмите F9 или треугольную кнопку запуска, затем кнопку в окне — заголовок окна станет Hello World. Это и есть минимальный цикл проектирования Toolbox (рис. 3-4 – 3-6).
Обработчик события
Рис. 3-2. Определение обработчика OnSetTitleClick
Связывание события
Рис. 3-3. Связывание OnClick с обработчиком
Запуск окна
Рис. 3-4. Запуск программы в TSMaster
Hello World
Рис. 3-5. Окно с изменённым заголовком
Результат
Рис. 3-6. Итог минимального цикла разработки

4. Автономный запуск Toolbox

Перейдите в VS Code и нажмите стрелку запуска в правом верхнем углу: TSMaster можно свернуть, рабочую область — отметить как доверенную. VS Code напрямую вызовет Python и запустит Toolbox (рис. 4-1).

Запуск из VS Code
Рис. 4-1. Запуск Toolbox из VS Code

Окно Toolbox отделяется от основной программы TSMaster и работает автономно — становится независимым приложением вместо главного окна. TSMaster при этом работает в фоне и обеспечивает Python-окну всю необходимую поддержку; все встроенные функции TSMaster остаются доступными (рис. 4-2).

Автономное окно
Рис. 4-2. Toolbox как автономное приложение

Первая часть серии — «Toolbox IDE в TSMaster, часть 1: проектирование и разработка окон на Python».