gui-ui 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gui_ui-0.1.0/LICENSE +21 -0
- gui_ui-0.1.0/PKG-INFO +171 -0
- gui_ui-0.1.0/README.md +141 -0
- gui_ui-0.1.0/gui_ui/__init__.py +1 -0
- gui_ui-0.1.0/gui_ui/main.py +1906 -0
- gui_ui-0.1.0/gui_ui.egg-info/PKG-INFO +171 -0
- gui_ui-0.1.0/gui_ui.egg-info/SOURCES.txt +11 -0
- gui_ui-0.1.0/gui_ui.egg-info/dependency_links.txt +1 -0
- gui_ui-0.1.0/gui_ui.egg-info/entry_points.txt +2 -0
- gui_ui-0.1.0/gui_ui.egg-info/not-zip-safe +1 -0
- gui_ui-0.1.0/gui_ui.egg-info/top_level.txt +1 -0
- gui_ui-0.1.0/pyproject.toml +56 -0
- gui_ui-0.1.0/setup.cfg +4 -0
gui_ui-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Ваше Имя
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
gui_ui-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: gui-ui
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A visual Tkinter interface builder without external dependencies.
|
|
5
|
+
Author-email: Nikola <a70655776@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/Nextrich/gui_ui
|
|
8
|
+
Project-URL: Source, https://github.com/Nextrich/gui_ui
|
|
9
|
+
Project-URL: Bug Reports, https://github.com/Nextrich/gui_ui/issues
|
|
10
|
+
Project-URL: Documentation, https://github.com/Nextrich/gui_ui#readme
|
|
11
|
+
Keywords: tkinter,gui,ui-builder,visual-editor,codegen,designer,no-dependencies,olympiad
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Environment :: Win32 (MS Windows)
|
|
14
|
+
Classifier: Environment :: X11 Applications
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Intended Audience :: Education
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Classifier: Topic :: Software Development :: User Interfaces
|
|
25
|
+
Classifier: Topic :: Software Development :: Code Generators
|
|
26
|
+
Requires-Python: >=3.9
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
License-File: LICENSE
|
|
29
|
+
Dynamic: license-file
|
|
30
|
+
|
|
31
|
+
# gui_ui
|
|
32
|
+
|
|
33
|
+
[](https://pypi.org/project/gui-ui/)
|
|
34
|
+
[](https://pypi.org/project/gui-ui/)
|
|
35
|
+
[](https://opensource.org/licenses/MIT)
|
|
36
|
+
[]()
|
|
37
|
+
|
|
38
|
+
**Визуальный конструктор Tkinter-интерфейсов без единой внешней зависимости.**
|
|
39
|
+
|
|
40
|
+
`gui_ui` — это редактор, в котором вы мышкой расставляете виджеты Tkinter
|
|
41
|
+
на холсте, настраиваете их свойства в инспекторе, пишете функции в
|
|
42
|
+
банке функций и одним нажатием получаете готовый `.py`-файл. Идеально для
|
|
43
|
+
быстрой разработки GUI на олимпиадах, хакатонах и учебных проектах.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## ✨ Возможности
|
|
48
|
+
|
|
49
|
+
- 🎨 **Визуальный холст** — перетаскивайте виджеты мышью, координаты
|
|
50
|
+
синхронизированы с инспектором один-в-один.
|
|
51
|
+
- 🧩 **Все базовые виджеты Tkinter** — Button, Label, Entry, Text, Frame,
|
|
52
|
+
LabelFrame, Treeview, Combobox, Checkbutton, Radiobutton, Listbox,
|
|
53
|
+
Scale, Notebook.
|
|
54
|
+
- 🛠 **Инспектор свойств** — геометрия (x/y/w/h), стиль (bg, fg, font,
|
|
55
|
+
padx, pady...), события (`command`, `<Button-1>`, `<Double-Button-1>` и др.).
|
|
56
|
+
Можно добавлять произвольные свойства из выпадающего списка.
|
|
57
|
+
- 📝 **Вкладка «Код»** — для каждого виджета показывается его кусок кода,
|
|
58
|
+
который можно править и применять обратно.
|
|
59
|
+
- 📚 **Банк функций** — храните все обработчики событий в одном месте.
|
|
60
|
+
Переименование функции автоматически обновляет все ссылки в проекте.
|
|
61
|
+
- 💡 **Редактор кода с подсветкой** — синтаксис Python, автодополнение
|
|
62
|
+
(`Ctrl+Space` или по мере ввода), автоотступ после `:`, табы.
|
|
63
|
+
- 🔄 **Импорт `.py`** — парсер Tkinter-скриптов через `ast`, восстанавливает
|
|
64
|
+
холст и функции.
|
|
65
|
+
- 💾 **Сохранение в `.json`** — промежуточный формат проекта.
|
|
66
|
+
- 📤 **Экспорт в `.py`** — готовый запускаемый скрипт с полем для импортов
|
|
67
|
+
и подсчётом строк.
|
|
68
|
+
- ▶ **F5** — мгновенный тестовый запуск в отдельном окне.
|
|
69
|
+
- 🖥 **Полный экран** — F11/Esc, зум холста — Ctrl + колесо.
|
|
70
|
+
- 🪶 **Ноль зависимостей** — только стандартная библиотека Python.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 🚀 Установка
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
pip install gui-ui
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Проверка:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
gui_ui
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
> **Важно:** откроется консольное окно с надписью
|
|
87
|
+
> «Пожалуйста, не закрывайте это консольное окно...» — не закрывайте его,
|
|
88
|
+
> пока работаете с редактором.
|
|
89
|
+
|
|
90
|
+
### Из исходников (для разработки)
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
git clone https://github.com/ваш_логин/gui_ui.git
|
|
94
|
+
cd gui_ui
|
|
95
|
+
pip install -e .
|
|
96
|
+
gui_ui
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 🎮 Как пользоваться
|
|
102
|
+
|
|
103
|
+
1. **Добавить виджет** — нажмите кнопку на левой панели. Виджет появится
|
|
104
|
+
на холсте и сразу выделится.
|
|
105
|
+
2. **Настроить** — в правом инспекторе задайте текст, координаты, цвета,
|
|
106
|
+
шрифт, события. Все изменения видны в реальном времени.
|
|
107
|
+
3. **Привязать событие** — на вкладке «События» выберите функцию из списка
|
|
108
|
+
(её нужно сначала создать в банке функций).
|
|
109
|
+
4. **Написать функцию** — откройте вкладку «Банк функций», создайте новую
|
|
110
|
+
функцию, напишите код (автодополнение поможет).
|
|
111
|
+
5. **Проверить** — нажмите `F5`. Откроется окно с работающим приложением.
|
|
112
|
+
6. **Сохранить** — «Файл → Экспорт в .py».
|
|
113
|
+
|
|
114
|
+
### Горячие клавиши
|
|
115
|
+
|
|
116
|
+
| Клавиша | Действие |
|
|
117
|
+
|---|---|
|
|
118
|
+
| `F5` | Запустить тестовый прогон |
|
|
119
|
+
| `F11` / `Esc` | Полный экран / выход из него |
|
|
120
|
+
| `Ctrl` + колесо | Зум холста |
|
|
121
|
+
| `Ctrl+Space` | Автодополнение в редакторе кода |
|
|
122
|
+
| `Tab` | 4 пробела |
|
|
123
|
+
| `Enter` | Автоотступ после `:` |
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 🧪 Пример: сгенерированный код
|
|
128
|
+
|
|
129
|
+
Редактор создаёт обычный Tkinter-код без магии:
|
|
130
|
+
|
|
131
|
+
```python
|
|
132
|
+
from tkinter import *
|
|
133
|
+
from tkinter import ttk
|
|
134
|
+
|
|
135
|
+
def on_click():
|
|
136
|
+
print('clicked')
|
|
137
|
+
|
|
138
|
+
tk = Tk()
|
|
139
|
+
tk.geometry('800x600')
|
|
140
|
+
tk.title('MyApp')
|
|
141
|
+
|
|
142
|
+
button_1 = Button(tk, text='Нажми меня')
|
|
143
|
+
button_1.config(command=lambda: on_click())
|
|
144
|
+
button_1.place(x=100, y=50, width=150, height=40)
|
|
145
|
+
|
|
146
|
+
tk.mainloop()
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Этот файл запускается обычным `python file.py` — на любом Python 3.9+,
|
|
150
|
+
без установки `gui_ui`.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 🧩 Совместимость
|
|
155
|
+
|
|
156
|
+
- **Python:** 3.9, 3.10, 3.11, 3.12
|
|
157
|
+
- **ОС:** Windows, Linux, macOS
|
|
158
|
+
- **Tkinter:** входит в стандартную поставку Python
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 🤝 Вклад
|
|
163
|
+
|
|
164
|
+
PR и issue приветствуются. По вопросам сотрудничества — почта из
|
|
165
|
+
`pyproject.toml`.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## 📄 Лицензия
|
|
170
|
+
|
|
171
|
+
MIT. Полный текст — в файле `LICENSE`.
|
gui_ui-0.1.0/README.md
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# gui_ui
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/gui-ui/)
|
|
4
|
+
[](https://pypi.org/project/gui-ui/)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
[]()
|
|
7
|
+
|
|
8
|
+
**Визуальный конструктор Tkinter-интерфейсов без единой внешней зависимости.**
|
|
9
|
+
|
|
10
|
+
`gui_ui` — это редактор, в котором вы мышкой расставляете виджеты Tkinter
|
|
11
|
+
на холсте, настраиваете их свойства в инспекторе, пишете функции в
|
|
12
|
+
банке функций и одним нажатием получаете готовый `.py`-файл. Идеально для
|
|
13
|
+
быстрой разработки GUI на олимпиадах, хакатонах и учебных проектах.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## ✨ Возможности
|
|
18
|
+
|
|
19
|
+
- 🎨 **Визуальный холст** — перетаскивайте виджеты мышью, координаты
|
|
20
|
+
синхронизированы с инспектором один-в-один.
|
|
21
|
+
- 🧩 **Все базовые виджеты Tkinter** — Button, Label, Entry, Text, Frame,
|
|
22
|
+
LabelFrame, Treeview, Combobox, Checkbutton, Radiobutton, Listbox,
|
|
23
|
+
Scale, Notebook.
|
|
24
|
+
- 🛠 **Инспектор свойств** — геометрия (x/y/w/h), стиль (bg, fg, font,
|
|
25
|
+
padx, pady...), события (`command`, `<Button-1>`, `<Double-Button-1>` и др.).
|
|
26
|
+
Можно добавлять произвольные свойства из выпадающего списка.
|
|
27
|
+
- 📝 **Вкладка «Код»** — для каждого виджета показывается его кусок кода,
|
|
28
|
+
который можно править и применять обратно.
|
|
29
|
+
- 📚 **Банк функций** — храните все обработчики событий в одном месте.
|
|
30
|
+
Переименование функции автоматически обновляет все ссылки в проекте.
|
|
31
|
+
- 💡 **Редактор кода с подсветкой** — синтаксис Python, автодополнение
|
|
32
|
+
(`Ctrl+Space` или по мере ввода), автоотступ после `:`, табы.
|
|
33
|
+
- 🔄 **Импорт `.py`** — парсер Tkinter-скриптов через `ast`, восстанавливает
|
|
34
|
+
холст и функции.
|
|
35
|
+
- 💾 **Сохранение в `.json`** — промежуточный формат проекта.
|
|
36
|
+
- 📤 **Экспорт в `.py`** — готовый запускаемый скрипт с полем для импортов
|
|
37
|
+
и подсчётом строк.
|
|
38
|
+
- ▶ **F5** — мгновенный тестовый запуск в отдельном окне.
|
|
39
|
+
- 🖥 **Полный экран** — F11/Esc, зум холста — Ctrl + колесо.
|
|
40
|
+
- 🪶 **Ноль зависимостей** — только стандартная библиотека Python.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 🚀 Установка
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
pip install gui-ui
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Проверка:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
gui_ui
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
> **Важно:** откроется консольное окно с надписью
|
|
57
|
+
> «Пожалуйста, не закрывайте это консольное окно...» — не закрывайте его,
|
|
58
|
+
> пока работаете с редактором.
|
|
59
|
+
|
|
60
|
+
### Из исходников (для разработки)
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
git clone https://github.com/ваш_логин/gui_ui.git
|
|
64
|
+
cd gui_ui
|
|
65
|
+
pip install -e .
|
|
66
|
+
gui_ui
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 🎮 Как пользоваться
|
|
72
|
+
|
|
73
|
+
1. **Добавить виджет** — нажмите кнопку на левой панели. Виджет появится
|
|
74
|
+
на холсте и сразу выделится.
|
|
75
|
+
2. **Настроить** — в правом инспекторе задайте текст, координаты, цвета,
|
|
76
|
+
шрифт, события. Все изменения видны в реальном времени.
|
|
77
|
+
3. **Привязать событие** — на вкладке «События» выберите функцию из списка
|
|
78
|
+
(её нужно сначала создать в банке функций).
|
|
79
|
+
4. **Написать функцию** — откройте вкладку «Банк функций», создайте новую
|
|
80
|
+
функцию, напишите код (автодополнение поможет).
|
|
81
|
+
5. **Проверить** — нажмите `F5`. Откроется окно с работающим приложением.
|
|
82
|
+
6. **Сохранить** — «Файл → Экспорт в .py».
|
|
83
|
+
|
|
84
|
+
### Горячие клавиши
|
|
85
|
+
|
|
86
|
+
| Клавиша | Действие |
|
|
87
|
+
|---|---|
|
|
88
|
+
| `F5` | Запустить тестовый прогон |
|
|
89
|
+
| `F11` / `Esc` | Полный экран / выход из него |
|
|
90
|
+
| `Ctrl` + колесо | Зум холста |
|
|
91
|
+
| `Ctrl+Space` | Автодополнение в редакторе кода |
|
|
92
|
+
| `Tab` | 4 пробела |
|
|
93
|
+
| `Enter` | Автоотступ после `:` |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 🧪 Пример: сгенерированный код
|
|
98
|
+
|
|
99
|
+
Редактор создаёт обычный Tkinter-код без магии:
|
|
100
|
+
|
|
101
|
+
```python
|
|
102
|
+
from tkinter import *
|
|
103
|
+
from tkinter import ttk
|
|
104
|
+
|
|
105
|
+
def on_click():
|
|
106
|
+
print('clicked')
|
|
107
|
+
|
|
108
|
+
tk = Tk()
|
|
109
|
+
tk.geometry('800x600')
|
|
110
|
+
tk.title('MyApp')
|
|
111
|
+
|
|
112
|
+
button_1 = Button(tk, text='Нажми меня')
|
|
113
|
+
button_1.config(command=lambda: on_click())
|
|
114
|
+
button_1.place(x=100, y=50, width=150, height=40)
|
|
115
|
+
|
|
116
|
+
tk.mainloop()
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Этот файл запускается обычным `python file.py` — на любом Python 3.9+,
|
|
120
|
+
без установки `gui_ui`.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 🧩 Совместимость
|
|
125
|
+
|
|
126
|
+
- **Python:** 3.9, 3.10, 3.11, 3.12
|
|
127
|
+
- **ОС:** Windows, Linux, macOS
|
|
128
|
+
- **Tkinter:** входит в стандартную поставку Python
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 🤝 Вклад
|
|
133
|
+
|
|
134
|
+
PR и issue приветствуются. По вопросам сотрудничества — почта из
|
|
135
|
+
`pyproject.toml`.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 📄 Лицензия
|
|
140
|
+
|
|
141
|
+
MIT. Полный текст — в файле `LICENSE`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.0"
|