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

Языки программирования, IDE, компиляторы, интерпретаторы, гипервизоры и виртуальные среды
Правила форума
Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Версия ОС вместе с разрядностью. Пример: LM 18.1 x64, LM Sarah x32 2. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 3. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 4. Суть. Желательно с выводом консоли, логами. 5. Скрин. Просьба указывать 1, 2 и 3 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Аватара пользователя

Автор темы
Chocobo
Сообщения: 9071
Зарегистрирован: 27 авг 2016, 19:57
Решено: 197
Откуда: НН
Благодарил (а): 624 раза
Поблагодарили: 2582 раза

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

Сообщение Chocobo » 04 сен 2018, 13:57

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

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

Аватара пользователя

darkfenix
Сообщения: 4635
Зарегистрирован: 27 июн 2017, 10:36
Решено: 52
Откуда: Нижний Тагил
Благодарил (а): 272 раза
Поблагодарили: 879 раз

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

Сообщение darkfenix » 04 сен 2018, 15:22

Годная библиотечка, жаль только змеенышем не владею :-D
Изображение

Аватара пользователя

Автор темы
Chocobo
Сообщения: 9071
Зарегистрирован: 27 авг 2016, 19:57
Решено: 197
Откуда: НН
Благодарил (а): 624 раза
Поблагодарили: 2582 раза

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

Сообщение Chocobo » 04 сен 2018, 15:25

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

Аватара пользователя

root
Сообщения: 942
Зарегистрирован: 16 фев 2017, 17:03
Решено: 5
Откуда: г. Хабаровск
Благодарил (а): 283 раза
Поблагодарили: 258 раз

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

Сообщение root » 04 сен 2018, 15:27

darkfenix, плюсую.
Chocobo, какую литературу и программы посоветуешь для начинающих?
Вы не готовы! :pc2:
Изображение

Аватара пользователя

darkfenix
Сообщения: 4635
Зарегистрирован: 27 июн 2017, 10:36
Решено: 52
Откуда: Нижний Тагил
Благодарил (а): 272 раза
Поблагодарили: 879 раз

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

Сообщение darkfenix » 04 сен 2018, 15:29

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

Аватара пользователя

Автор темы
Chocobo
Сообщения: 9071
Зарегистрирован: 27 авг 2016, 19:57
Решено: 197
Откуда: НН
Благодарил (а): 624 раза
Поблагодарили: 2582 раза

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

Сообщение Chocobo » 04 сен 2018, 15:32

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

Аватара пользователя

Автор темы
Chocobo
Сообщения: 9071
Зарегистрирован: 27 авг 2016, 19:57
Решено: 197
Откуда: НН
Благодарил (а): 624 раза
Поблагодарили: 2582 раза

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

Сообщение Chocobo » 04 сен 2018, 17:30

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

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

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

Аватара пользователя

Автор темы
Chocobo
Сообщения: 9071
Зарегистрирован: 27 авг 2016, 19:57
Решено: 197
Откуда: НН
Благодарил (а): 624 раза
Поблагодарили: 2582 раза

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

Сообщение Chocobo » 04 сен 2018, 21:17

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

Аватара пользователя

darkfenix
Сообщения: 4635
Зарегистрирован: 27 июн 2017, 10:36
Решено: 52
Откуда: Нижний Тагил
Благодарил (а): 272 раза
Поблагодарили: 879 раз

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

Сообщение darkfenix » 05 сен 2018, 03:25

Chocobo, нужно как-то обновление на пакетик накатить?
Изображение

Аватара пользователя

Автор темы
Chocobo
Сообщения: 9071
Зарегистрирован: 27 авг 2016, 19:57
Решено: 197
Откуда: НН
Благодарил (а): 624 раза
Поблагодарили: 2582 раза

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

Сообщение Chocobo » 05 сен 2018, 04:46

darkfenix, обновить централизованно с PyPI можно через pip3 install PySimpleGUI --upgrade
Изображение
   
Изображение

Аватара пользователя

Obamacyborg1975
Сообщения: 401
Зарегистрирован: 27 сен 2016, 05:19
Решено: 2
Благодарил (а): 122 раза
Поблагодарили: 94 раза

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

Сообщение Obamacyborg1975 » 05 сен 2018, 13:07

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

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

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

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

python3-pip
командой

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

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

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

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

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

pip3 install --user PySimpleGUI

Аватара пользователя

Автор темы
Chocobo
Сообщения: 9071
Зарегистрирован: 27 авг 2016, 19:57
Решено: 197
Откуда: НН
Благодарил (а): 624 раза
Поблагодарили: 2582 раза

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

Сообщение Chocobo » 05 сен 2018, 13:52

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.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
   
Изображение

Аватара пользователя

di_mok
Сообщения: 4830
Зарегистрирован: 27 авг 2016, 16:06
Решено: 30
Откуда: Арзамас
Благодарил (а): 1209 раз
Поблагодарили: 988 раз

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

Сообщение di_mok » 05 сен 2018, 15:54

Вот что мне не понравилась, так это КьюТэ-лайк рожа
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение
Изображение

Аватара пользователя

Автор темы
Chocobo
Сообщения: 9071
Зарегистрирован: 27 авг 2016, 19:57
Решено: 197
Откуда: НН
Благодарил (а): 624 раза
Поблагодарили: 2582 раза

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

Сообщение Chocobo » 05 сен 2018, 15:57

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

Аватара пользователя

darkfenix
Сообщения: 4635
Зарегистрирован: 27 июн 2017, 10:36
Решено: 52
Откуда: Нижний Тагил
Благодарил (а): 272 раза
Поблагодарили: 879 раз

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

Сообщение darkfenix » 05 сен 2018, 16:06

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

Аватара пользователя

di_mok
Сообщения: 4830
Зарегистрирован: 27 авг 2016, 16:06
Решено: 30
Откуда: Арзамас
Благодарил (а): 1209 раз
Поблагодарили: 988 раз

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

Сообщение di_mok » 05 сен 2018, 16:08

Chocobo писал(а):
05 сен 2018, 15:57
там не Qt
Дык, я и не говорил, что QT, а что похожа
darkfenix писал(а):
05 сен 2018, 16:06
не заметно
Во-во
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение
Изображение

Вернуться в «Программирование, скриптинг, виртуализация»