TkForge
Перетаскивание в Figma для легкого создания Python GUI
Проголосовать на Product Hunt • Пожертвовать
Important
Пожертвуйте или спонсируйте проект, чтобы помочь ему расти и становиться лучше! (https://patreon.com/axorax)
Translated by SiresMacro (@siresmacro in Discord)
- Почему и как?
- Предварительный просмотр приложения
- Возможности
- Сделано с TkForge
- Руководство по использованию
- Доступные имена
- Имена с уникальными возможностями
- Руководство по использованию CLI
- Добавление CLI exe в переменные среды в Windows
Что-то подобное уже было создано ParthJadhav с Tkinter Designer, но мне понравилась концепция, и я хотел создать что-то похожее, если не лучше, с нуля. TkForge взаимодействует с API Figma, чтобы получить детали файла и превратить их в код. Вы можете посмотреть мое видео об этом, чтобы узнать больше :)
- Очень простое в использовании
- Создание GUI методом перетаскивания
- Поддержка текста-заглушки
- Поддержка более одного фрейма
- Автоматически устанавливает передний план в черный или белый цвет в зависимости от фона (не всегда точно)
- Хеширование изображений
Присоединяйтесь к нашему Discord серверу и размещайте/просматривайте приложения, созданные с помощью TkForge!
Сначала вам нужно скачать исполняемый файл со страницы релизов. Затем вам нужно создать токен Figma и скопировать URL вашего проекта. После этого откройте приложение, вставьте токен и URL вашего проекта в приложение и нажмите кнопку, чтобы начать магию! 🪄
Убедитесь, что ваш проект Figma использует фреймы. TkForge превращает содержимое внутри фреймов в работающие GUI и игнорирует все, что не находится во фрейме.
В проекте Figma убедитесь, что добавили правильные имена для всех ваших элементов.
| Имя | Элемент Tkinter | 2-й аргумент (текст после пробела) |
|---|---|---|
text (можно также назвать как угодно) |
canvas text | - |
button |
button | - |
image |
canvas image | имя файла изображения |
textbox |
entry | текст-заглушка |
textarea |
text | текст-заглушка |
spinbox |
spinbox | - |
rectangle |
canvas rectangle | - |
circle |
canvas circle | - |
oval |
canvas oval | - |
line |
canvas line | - |
label |
label | - |
scale |
scale | FROM TO ORIENT |
listbox (читайте ниже перед использованием) |
listbox | - |
Если любой элемент начинается с этих имен, то он будет считаться соответствующим элементом Tkinter. Например; rectangle 1, rectangle, Rectangle, RecTanGle 69 все будут считаться прямоугольником. Регистр не имеет значения.
Вы можете использовать label вместо text, если хотите изменить этот текст позже.
Вы можете задать имя для файла изображения таким образом: image myImage. Изображение будет создано с именем myImage.png
Oval и circle работают одинаково, поэтому вы можете использовать любой из них.
Поддерживаются цвет обводки и ширина обводки, что означает, что если вы добавите обводку к ним в Figma, они появятся с этой обводкой и шириной обводки в дизайне Tkinter тоже.
Чтобы добавить текст-заглушку, просто включите его после имени элемента и пробела. Например, textbox Hello world или textarea Hello world. Чтобы установить цвет текста-заглушки, добавьте placeholder_fg="цвет_здесь". Пример:
textbox_1 = TkForge_Entry(
placeholder="Пример кода",
placeholder_fg="#fff"
)Используйте textbox_1.is_placeholder(False), чтобы убедиться, что вставленный текст не наследует цвет заглушки. Получите текст-заглушку с помощью textbox_1.get_placeholder(). Текст-заглушка может потребовать дополнительной обработки для различных ситуаций.
Для значений from, to и orient элемента scale вы можете поместить их после имени один за другим, разделенные пробелами. Например; если я хочу scale с from=10, to=50 и orient=HORIZONTAL, то я могу написать scale 10 50 или scale 10 50 HORIZONTAL, а если я хочу orient=VERTICAL, то scale 10 50 VERTICAL
Рекомендуется избегать использования listbox, поскольку он искажает высоту и ширину на несколько пикселей. Единицы Figma работают неправильно, поэтому мне пришлось разделить их на конкретные числа, чтобы приблизиться к внешнему виду Figma.
Если вы хотите запустить его из файла Python, используйте python tkforge.py ВАШИ_АРГУМЕНТЫ_ЗДЕСЬ
Вы можете использовать tkforge --help, чтобы получить команду помощи. Если вы используете файл Python, используйте python tkforge.py --help
Вам может потребоваться использовать ./tkforge.exe или что-то подобное, если вы не добавили исполняемый файл CLI в переменные среды.
Вот некоторые примеры использования:
tkforge --id "my_id" --token "my_token" --out ./appВы можете использовать любую из команд ниже, если хотите, чтобы вывод был в текущем каталоге:
tkforge --id "my_id" --token "my_token"
tkforge --id "my_id" --token "my_token" --out .tkforge "my_id" "my_token" output_pathВы можете использовать любую из команд ниже, если хотите, чтобы вывод был в текущем каталоге:
tkforge "my_id" "my_token"
tkforge "my_id" "my_token" .