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

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

Автор темы
Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

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

#1

04 сен 2018, 16: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

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

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

rogoznik
Сообщения: 10044
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1958 раз
Контактная информация:

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

#2

04 сен 2018, 18:22

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

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

Автор темы
Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

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

#3

04 сен 2018, 18:25

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

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

root
Сообщения: 938
Зарегистрирован: 16 фев 2017, 20:03
Решено: 5
Откуда: г. Хабаровск
Благодарил (а): 268 раз
Поблагодарили: 262 раза
Контактная информация:

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

#4

04 сен 2018, 18:27

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

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

rogoznik
Сообщения: 10044
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1958 раз
Контактная информация:

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

#5

04 сен 2018, 18:29

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

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

Автор темы
Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

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

#6

04 сен 2018, 18:32

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

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

Автор темы
Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

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

#7

04 сен 2018, 20:30

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

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

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

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

Автор темы
Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

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

#8

05 сен 2018, 00:17

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

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

rogoznik
Сообщения: 10044
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1958 раз
Контактная информация:

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

#9

05 сен 2018, 06:25

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

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

Автор темы
Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

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

#10

05 сен 2018, 07:46

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

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

Obamacyborg1975
Сообщения: 478
Зарегистрирован: 27 сен 2016, 08:19
Решено: 2
Благодарил (а): 128 раз
Поблагодарили: 104 раза
Контактная информация:

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

#11

05 сен 2018, 16:07

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

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

Автор темы
Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

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

#12

05 сен 2018, 16: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
Сообщения: 5469
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1593 раза
Поблагодарили: 1276 раз
Контактная информация:

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

#13

05 сен 2018, 18:54

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

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

Автор темы
Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

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

#14

05 сен 2018, 18:57

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

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

rogoznik
Сообщения: 10044
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1958 раз
Контактная информация:

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

#15

05 сен 2018, 19:06

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

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

di_mok
Сообщения: 5469
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1593 раза
Поблагодарили: 1276 раз
Контактная информация:

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

#16

05 сен 2018, 19:08

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

Закрыто

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя