Страница 1 из 1

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 04 сен 2018, 16:57
Chocobo
PySimpleGui - Новый интересный модуль на python3 для отрисовки графических интерфейсов. Описание элементов для формы крайне простое, и в то же время можно сделать довольно комплексные штуки, с отдельными группами элементов, вкладками и т.п. Ну и кроссплатформерный до кучи, как положено.
Установить его можно в пару комманд.

Код: Выделить всё

apt install python3-pip python3-tk
pip3 install PySimpleGUI
Например такое.
Снимок экрана от 2018-09-04 10-14-20.png
что в GTK или Qt потребовало бы описания на под сотню строк, тут убирается в дюжину.

Код: Выделить всё

#!/usr/bin/python3
import PySimpleGUI as sg

# Very basic form.  Return values as a list
form = sg.FlexForm('Простая форма ввода')  # begin with a blank form

layout = [
          [sg.Text('Тут запрос неких данных на вход')],
          [sg.Text('Ввод текста', size=(15, 1)), sg.InputText('username')],
          [sg.Text('Выбор пункта', size=(15, 1)), sg.InputCombo(('Значение1', 'Значение 2'), size=(20, 3))],
          [sg.Checkbox('Чекбокс1'), sg.Checkbox('Чекбокс2', default=True)],
          [sg.Text('_'  * 80)],
          [sg.Text('Указать путь', size=(15, 1), auto_size_text=False, justification='right'),
           sg.InputText('~/'), sg.FolderBrowse()],
          [sg.Submit(), sg.Cancel()]
         ]

button, values = form.LayoutAndRead(layout)
Доступных элементов масса, и можно накрутить почти все что угодно:
Снимок экрана от 2018-09-04 16-46-54.png

Все это с годной и простой документацией с примерами, и кучкой демострационных файлов на гитхабе, которые можно брать за основу.

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 04 сен 2018, 18:22
rogoznik
Годная библиотечка, жаль только змеенышем не владею :-D

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 04 сен 2018, 18:25
Chocobo
darkfenix, А тут, например для замены zenity, можно запросто организовать вызов по кнопке типа os.system ("/path/to/script.sh --arg1=%s") и передавать собранные в форме параметры уже как аргументы на скрипт sh :smile:

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 04 сен 2018, 18:27
root
darkfenix, плюсую.
Chocobo, какую литературу и программы посоветуешь для начинающих?

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 04 сен 2018, 18:29
rogoznik
Chocobo, я об этом же подумал. Надо будет как-нить найти время глянуть. Глядишь может переделаю скрипт для установки PaleMoon :smile:

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 04 сен 2018, 18:32
Chocobo
root, я как-то лет пять назад достаточную для начала вводную получил от https://www.codecademy.com/learn/learn-python
Но это не совсем по теме тут :) За обсуждение языков или конретно Python можно замутить отдельную темку, если будет желание

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 04 сен 2018, 20:30
Chocobo
охота опробовать на чем нибудь осязаемом :hoho: Для тренировки решил взять Запись образа командой dd (Пост Chocobo #1897)

и сделать что-то вот такое вот
2018-09-04-202511_1920x1080_scrot.png
где в каждый выбор подставлять значения на основе формирующейся урл.

Только пока не совсем въехал, как последовательно обновить значения комбобоксов, надо еще покурить документацию :read3:

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 05 сен 2018, 00:17
Chocobo
Офигеть. Зашел на гитхаб с вопросом по реализации той хотелки что выше - и разраб её взял и запилил на лету.
https://github.com/MikeTheWatchGuy/PySi ... issues/117
Вот они опенсорс-монстры во всей красе :thumbs: Так победим)

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 05 сен 2018, 06:25
rogoznik
Chocobo, нужно как-то обновление на пакетик накатить?

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 05 сен 2018, 07:46
Chocobo
darkfenix, обновить централизованно с PyPI можно через pip3 install PySimpleGUI --upgrade

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 05 сен 2018, 16:07
Obamacyborg1975
Chocobo писал(а):
04 сен 2018, 16:57
Новый интересный модуль на python3 для отрисовки графических интерфейсов.
Спасибо за описание модуля. От себя добавлю, что хорошо было бы написать, что с помощью

Код: Выделить всё

pip3 install
программы луче устанавливать от простого юзера. Как это сделать? Установить пакет

Код: Выделить всё

python3-pip
командой

Код: Выделить всё

sudo apt install python3-pip
Для установки под обычного пользователя, добавить pip в файл Должно быть вот так

Код: Выделить всё

export PATH="${PATH}:${HOME}/.local/bin/"
Теперь можно установить PySimpleGui командой

Код: Выделить всё

pip3 install --user PySimpleGUI

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 05 сен 2018, 16:52
Chocobo
Obamacyborg1975, Все верно, в эти тонкости я вдаваться не стал.
но, думаю удобно держать его с pip по сути только на системе девелопера.

Учитывая что на пользователькой машине, куда готовое решение будет деплоиться тоже должен быть установлен данный модуль, то это уже может создать некоторые сложности. Как минимум возможное учитывать отсутсвие инета или нестандартные конфигурации и пути интерпретатора

Весь функционал модуля сожержится в одном файле PySimpleGUI.py на 160кб, который можно просто хранить рядом с исполняемым .py-файлом для импорта из локальной директории.
https://github.com/MikeTheWatchGuy/PySi ... mpleGUI.py
Снимок экрана от 2018-09-05 16-51-03.png
Так наверно оно будет ближе к заветам Дзена - Simple is better than complex.

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 05 сен 2018, 18:54
di_mok
Вот что мне не понравилась, так это КьюТэ-лайк рожа

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 05 сен 2018, 18:57
Chocobo
di_mok, Сейчас там не Qt и не GTK, а Tkinter / Tk
Но в описании проекта в планах есть и других тулкитов план подвязки в todo.
Возможно скоро будем указывать в коде, чей именно элемент будет отрисован.

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 05 сен 2018, 19:06
rogoznik
Chocobo, там интересные строчки
Wiki писал(а): Tk портирован на большинство реализаций Linux, Mac OS X, Unix и Microsoft Windows. Начиная с Tcl/Tk 8, графический интерфейс имеет «родной» для ОС вид, то есть графические элементы будут выглядеть так же, как и стандартные для данной ОС.
Вот только что-то не заметно

PySimpleGUI - Простое описание GUI в несколько строк.

Добавлено: 05 сен 2018, 19:08
di_mok
Chocobo писал(а):
05 сен 2018, 18:57
там не Qt
Дык, я и не говорил, что QT, а что похожа
darkfenix писал(а):
05 сен 2018, 19:06
не заметно
Во-во