Metadata-Version: 2.4
Name: gui-ui
Version: 0.1.0
Summary: A visual Tkinter interface builder without external dependencies.
Author-email: Nikola <a70655776@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/Nextrich/gui_ui
Project-URL: Source, https://github.com/Nextrich/gui_ui
Project-URL: Bug Reports, https://github.com/Nextrich/gui_ui/issues
Project-URL: Documentation, https://github.com/Nextrich/gui_ui#readme
Keywords: tkinter,gui,ui-builder,visual-editor,codegen,designer,no-dependencies,olympiad
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Win32 (MS Windows)
Classifier: Environment :: X11 Applications
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: User Interfaces
Classifier: Topic :: Software Development :: Code Generators
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# gui_ui

[![Python 3.9+](https://img.shields.io/badge/python-3.9%2B-blue.svg)](https://pypi.org/project/gui-ui/)
[![PyPI version](https://img.shields.io/pypi/v/gui-ui.svg)](https://pypi.org/project/gui-ui/)
[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](https://opensource.org/licenses/MIT)
[![No dependencies](https://img.shields.io/badge/dependencies-0-brightgreen.svg)]()

**Визуальный конструктор Tkinter-интерфейсов без единой внешней зависимости.**

`gui_ui` — это редактор, в котором вы мышкой расставляете виджеты Tkinter
на холсте, настраиваете их свойства в инспекторе, пишете функции в
банке функций и одним нажатием получаете готовый `.py`-файл. Идеально для
быстрой разработки GUI на олимпиадах, хакатонах и учебных проектах.

---

## ✨ Возможности

- 🎨 **Визуальный холст** — перетаскивайте виджеты мышью, координаты
  синхронизированы с инспектором один-в-один.
- 🧩 **Все базовые виджеты Tkinter** — Button, Label, Entry, Text, Frame,
  LabelFrame, Treeview, Combobox, Checkbutton, Radiobutton, Listbox,
  Scale, Notebook.
- 🛠 **Инспектор свойств** — геометрия (x/y/w/h), стиль (bg, fg, font,
  padx, pady...), события (`command`, `<Button-1>`, `<Double-Button-1>` и др.).
  Можно добавлять произвольные свойства из выпадающего списка.
- 📝 **Вкладка «Код»** — для каждого виджета показывается его кусок кода,
  который можно править и применять обратно.
- 📚 **Банк функций** — храните все обработчики событий в одном месте.
  Переименование функции автоматически обновляет все ссылки в проекте.
- 💡 **Редактор кода с подсветкой** — синтаксис Python, автодополнение
  (`Ctrl+Space` или по мере ввода), автоотступ после `:`, табы.
- 🔄 **Импорт `.py`** — парсер Tkinter-скриптов через `ast`, восстанавливает
  холст и функции.
- 💾 **Сохранение в `.json`** — промежуточный формат проекта.
- 📤 **Экспорт в `.py`** — готовый запускаемый скрипт с полем для импортов
  и подсчётом строк.
- ▶ **F5** — мгновенный тестовый запуск в отдельном окне.
- 🖥 **Полный экран** — F11/Esc, зум холста — Ctrl + колесо.
- 🪶 **Ноль зависимостей** — только стандартная библиотека Python.

---

## 🚀 Установка

```bash
pip install gui-ui
```

Проверка:

```bash
gui_ui
```

> **Важно:** откроется консольное окно с надписью
> «Пожалуйста, не закрывайте это консольное окно...» — не закрывайте его,
> пока работаете с редактором.

### Из исходников (для разработки)

```bash
git clone https://github.com/ваш_логин/gui_ui.git
cd gui_ui
pip install -e .
gui_ui
```

---

## 🎮 Как пользоваться

1. **Добавить виджет** — нажмите кнопку на левой панели. Виджет появится
   на холсте и сразу выделится.
2. **Настроить** — в правом инспекторе задайте текст, координаты, цвета,
   шрифт, события. Все изменения видны в реальном времени.
3. **Привязать событие** — на вкладке «События» выберите функцию из списка
   (её нужно сначала создать в банке функций).
4. **Написать функцию** — откройте вкладку «Банк функций», создайте новую
   функцию, напишите код (автодополнение поможет).
5. **Проверить** — нажмите `F5`. Откроется окно с работающим приложением.
6. **Сохранить** — «Файл → Экспорт в .py».

### Горячие клавиши

| Клавиша | Действие |
|---|---|
| `F5` | Запустить тестовый прогон |
| `F11` / `Esc` | Полный экран / выход из него |
| `Ctrl` + колесо | Зум холста |
| `Ctrl+Space` | Автодополнение в редакторе кода |
| `Tab` | 4 пробела |
| `Enter` | Автоотступ после `:` |

---

## 🧪 Пример: сгенерированный код

Редактор создаёт обычный Tkinter-код без магии:

```python
from tkinter import *
from tkinter import ttk

def on_click():
    print('clicked')

tk = Tk()
tk.geometry('800x600')
tk.title('MyApp')

button_1 = Button(tk, text='Нажми меня')
button_1.config(command=lambda: on_click())
button_1.place(x=100, y=50, width=150, height=40)

tk.mainloop()
```

Этот файл запускается обычным `python file.py` — на любом Python 3.9+,
без установки `gui_ui`.

---

## 🧩 Совместимость

- **Python:** 3.9, 3.10, 3.11, 3.12
- **ОС:** Windows, Linux, macOS
- **Tkinter:** входит в стандартную поставку Python

---

## 🤝 Вклад

PR и issue приветствуются. По вопросам сотрудничества — почта из
`pyproject.toml`.

---

## 📄 Лицензия

MIT. Полный текст — в файле `LICENSE`.
