3.27M
Категория: ПрограммированиеПрограммирование

PySimpleGUI. Построение графического интерфейса

1.

PySimpleGUI
Построение графического интерфейса
pip install PySimpleGUI
pip install --upgrade PySimpleGUI
pip install --upgrade --no-cache-dir PySimpleGUI

2.

В PySimpleGUI есть 2 уровня
поддержки работы с окнами:
High Level и Customized.
High Level
Всплывающее окно с
любым количеством
параметров, которое.
Это графический
эквивалент оператора
"print". Подходит для
«приостановки» потока
вашей программы,
пока пользователь не
сможет прочитать
некоторые сообщения
об ошибках.
Popup – вариант 1

3.

4.

Customized

5.

Добавим тему
Другой вариант:
sg.change_look_and_feel('Theme Name Here')
Разложим и разберем код

6.

Какие есть темы?

7.

Какие есть темы?

8.

Тест
Запуск из IDLE
В пакете PySimpleGUI есть
код,
который обновляет ранее
установленный пакет pip
до последней версии,
проверенной на GitHub.
«Обновление»—
вызвать
sg.main()из вашего
кода, а затем нажать
красную кнопку
обновления.
Запуск из командной строки: python -m PySimpleGUI.PySimpleGUI

9.

Восстановление после неудачного релиза GitHub
Если вы столкнулись с проблемой обновления после обновления с
GitHub, вы, можете использовать pip для удаления, а затем
переустановить из PyPI, чтобы посмотреть, сможете ли вы снова
выполнить обновление с GitHub.
pip uninstall PySimpleGUI
pip install PySimpleGUI

10.

Где лежит библиотека? Номер версии?

11.

Справка в PyCharm?
Вы можете настроить PyCharm на автоматическое отображение
документации о классе, функции, методе и т. д., на котором в
данный момент находится ваш курсор.
Вызвать документацию вручную, нажав CONTROL+Q.
Параметры метода - когда ваш курсор находится между ( )
нажимаем CONTROL + P.

12.

Popup – варианты?
import PySimpleGUI as sg
sg.popup('popup') # Shows OK button
sg.popup_ok('popup_ok') # Shows OK button
sg.popup_yes_no('popup_yes_no') # Shows Yes and No buttons
sg.popup_cancel('popup_cancel') # Shows Cancelled button
sg.popup_ok_cancel('popup_ok_cancel') # Shows OK and Cancel
buttons
sg.popup_error('popup_error') # Shows red error button
sg.popup_timed('popup_timed') # Automatically closes
sg.popup_auto_close('popup_auto_close‘, auto_close_duration=5)
# Same as PopupTimed
sg.popup_no_wait(‘Не блокирующее окно”)

13.

Задача. Используя popup создайте мини программу: всплывает окно с кнопки “Yes” и “No” с
надписью «Вы студент?». Если отвечают положительно – выводится окно c надписью
«Отлично», которое исчезнет через 5 секунд, в противном случае появится окно с надписью
«Надо поступать в СГУ!” c кнопкой “ОК”. Если первое окно закроют «Х» - появится окно с
надписью «Жаль».

14.

Прокручиваемый вывод (если много текста)

15.

Возвраща
ть не OK,
а Yes или
NO
Последовательный вывод

16.

Всплывающий ввод
Есть всплывающие вызовы для одноэлементных входов.
На выбор предлагается 3 таких всплывающих окна, каждое из которых
имеет настройки, позволяющие выполнять настройку.
popup_get_text- получить одну строку текста
popup_get_file- получить имя файла
popup_get_folder- получить имя папки
Используйте эти всплывающие окна вместо создания собственного окна
для получения одного значения данных.
Если вы обнаружите, что параметры не позволяют создать окно того вида,
который вы ищете, то пришло время создать собственное окно.

17.

18.

19.

20.

Конструктор окон - Customized
1. Набросайте свой графический
интерфейс на бумаге.
2. Разделите свой графический
интерфейс на строки.
3. Пометьте каждый элемент именем
элемента.
4. Напишите свой код Python,
используя метки в качестве
псевдокода.

21.

Шаг 1. Набросайте графический интерфейс

22.

Шаг 2 - Разделите на ряды

23.

Шаг 3. Элементы маркировки

24.

Шаг 4. Написание кода
layout = [ [sg.Text('Enter a Number')],
[sg.Input()],
[sg.OK()] ]

25.

26.

Таблица элементов (базовые)
Text (T, Txt)
Отображение текста
Input (I, In, InputText)
Ввод данных
Multiline (ML, Mline)
Многострочный ввод или вывод
Button
(B, Btn) Кнопка
OK
Кнопка
Cancel
Кнопка
С текстом (названием кнопки) по умолчанию
Exit
Кнопка
Quit
Кнопка
Submit
Кнопка
Image
(Im) PNG или GIF картинка
FileBrowse Выбор файла по имени
FolderBrowse - Выбор папки по имени

27.

Задание. Получить имя файла (дизайн).

28.

29.

30.

Два возвращаемых значения
Все вызовы Window Read возвращают 2 значения.
По соглашению оператор чтения записывается так:
event, values = window.read()

31.

Event – почему событие завершено?
Нажали на кнопку
Окно закрыто с помощью X
Специальные возможности (дополнительно включаются):
Нажатие клавиши клавиатуры
Колесико мыши вверх/вниз
Выбран пункт меню
Измененный элемент (слайдер, счетчик и т. д.)
Элемент списка был нажат
Клавиша возврата была нажата в элементе ввода
Время ожидания события
Текст был нажат
Выбран элемент списка
Выбрана строка таблицы
И т.д.
Значением кнопки при вызове будет одно из
двух значений:
1. Текст кнопки — по умолчанию
2. Клавиша кнопки — если указана
клавиша
Эти события не включены по умолчанию.
Чтобы включить события для Элемента,
установите параметр enable_events=True

32.

Событие
WIN_CLOSED
Константа WIN_CLOSED (None) возвращается, когда
пользователь щелкает X, чтобы закрыть окно.
if event == sg.WIN_CLOSED or event == 'Exit':
break
Более «питоновская» версия этого же утверждения:
if event in (sg.WIN_CLOSED, 'Exit'):
break

33.

Шаблон. Постоянное окно.
Обратите внимание, что
строка после цикла while
является вызовом
window.close(). Причина этого
в том, что выйти из цикла
можно двумя способами.
Щелчок "X" или Щелчок
кнопки "Выход"

34.

Подтверждение закрытия окна
Этот логический параметр указывает, хотите ли вы получать событие о
том, что пользователь хочет закрыть окно, а не о том, что
пользователь закрыл окно.
window = sg.Window('Window Title', layout,
enable_close_attempted_event=True)

35.

36.

Переменная values— возвращаемые значения в виде списка
event, values = sg.Window('My title', window_rows).read()
event, value_list = window.read()
value1 = value_list[0]
value2 = value_list[1]
Каждый из элементов,
являющихся входными
элементами, будет иметь
значение в списке возвращаемых
значений. Если вы точно знаете,
что значения будут возвращены в
виде списка, то можно было бы
распаковать прямо в
переменные.

37.

values — возвращаемые значения в виде словаря
Чтобы использовать словарь, вам необходимо: Отметить каждый
элемент ввода, который вы хотите добавить в словарь, с
помощью ключевого слова key.
Если какой -либо элемент в окне имеет key, то все возвращаемые
значения возвращаются через словарь. Если некоторые
элементы не имеют ключа, то они нумеруются с нуля.

38.

Обновление данных
window[key].update(new_value)
или
window[key](new_value)

39.

Шаблон. Постоянное окно с обновлением
данных в окне

40.

Элемент списка
Стандартный список, который вы найдете в большинстве
графических интерфейсов. Обратите внимание, что
возвращаемые значения из этого элемента будут
представлять собой список результатов, а не одиночный
результат . Это связано с тем, что пользователь может
выбрать более 1 элемента из списка (если вы установите
правильный режим).
English     Русский Правила