Пропустить до содержимого

Как использовать PySimpleGUI для создания графического интерфейса в Python?

[

PySimpleGUI: Простой способ создания графического интерфейса с использованием Python

Автор: Майк Дрисколл

Создание простого графического пользовательского интерфейса (GUI), который работает на разных платформах, может быть сложной задачей. Но это необязательно так. Вы можете использовать язык Python и пакет PySimpleGUI для создания интерфейсов с хорошим внешним видом, которыми будут пользоваться пользователи. PySimpleGUI - это новая библиотека для создания графического интерфейса на Python, которая недавно привлекла много внимания.

Начало работы с PySimpleGUI

PySimpleGUI был создан в 2018 году, поэтому это относительно новый пакет по сравнению с такими инструментами, как wxPython или PyQt.

PySimpleGUI имеет четыре порта:

  1. Tkinter
  2. PyQt
  3. wxPython
  4. Remi

PySimpleGUI обертывает части каждого из этих пакетов и делает их использование проще. Однако каждый порт должен быть установлен отдельно.

В зависимости от того, какой вариант PySimpleGUI вы используете, созданные с помощью PySimpleGUI приложения могут не выглядеть нативными для своей платформы. Но не позволяйте этому остановить вас и попробуйте использовать PySimpleGUI. PySimpleGUI все равно достаточно мощный и с его помощью можно выполнить большинство задач с небольшими усилиями.

Установка PySimpleGUI

Вот как это сделать:

Terminal window
$ python -m pip install pysimplegui

Если вы предпочитаете попробовать вариант с PyQt, то можете вместо этого использовать pip install PySimpleGUIQt. Теперь, когда у вас установлен PySimpleGUI, пришло время узнать, как им пользоваться!

Создание основных элементов интерфейса с помощью PySimpleGUI

Включайте в статью настолько подробные, пошаговые и исполняемые примеры кода, насколько это возможно.

Создание простых приложений

Для создания приложений с использованием PySimpleGUI сначала необходимо импортировать библиотеку:

import PySimpleGUI as sg

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

layout = [[sg.Text("Введите ваше имя:"), sg.Input(key='-NAME-')],
[sg.Button("Приветствовать")]]

Здесь мы создали макет с текстовым полем для ввода имени и кнопкой “Приветствовать”. Каждый элемент макета представлен внутренним списком, а все элементы макета объединены во внешний список.

После создания макета вы должны создать окно приложения и применить макет к этому окну:

window = sg.Window("Мое первое приложение", layout)

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

while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
if event == "Приветствовать":
name = values['-NAME-']
sg.popup(f"Привет, {name}!")

В этом примере мы проверяем, какое событие произошло, и выполняем соответствующие действия. Если пользователь нажал кнопку “Приветствовать”, мы получаем введенное имя из текстового поля и выводим приветственное сообщение с помощью функции sg.popup().

Наконец, не забудьте закрыть окно приложения:

window.close()

Это простой пример создания приложения с использованием PySimpleGUI. Вы можете расширять его, добавлять новые элементы и взаимодействовать с различными событиями, чтобы создать более сложные и интересные GUI-приложения.

Создание плеера изображений с использованием PySimpleGUI

PySimpleGUI также может быть использован для создания GUI-приложений, которые выполняют конкретные задачи. Возьмем для примера создание простого плеера изображений с использованием PySimpleGUI.

Для начала импортируйте необходимые модули:

import PySimpleGUI as sg
import os

Затем определите макет интерфейса для вашего приложения. Вот пример макета для плеера изображений:

layout = [[sg.Image(key='-IMAGE-')],
[sg.Button('Предыдущее изображение'), sg.Button('Следующее изображение'), sg.Button('Закрыть')]]

Здесь мы создали макет с изображением, которое будет выводиться в окне приложения, и тремя кнопками: “Предыдущее изображение”, “Следующее изображение” и “Закрыть”.

После создания макета создайте окно приложения и примените к нему макет:

window = sg.Window("Плеер изображений", layout)

Затем создайте список с путями к изображениям, которые вы хотите показать в плеере:

image_paths = ['image1.jpg', 'image2.jpg', 'image3.jpg']

Затем создайте переменную current_image для отслеживания текущего изображения, которое должно быть отображено:

current_image = 0

Теперь вы можете обработать события взаимодействия пользователя со своим приложением. Выведите первое изображение из списка при открытии окна:

image_elem = window['-IMAGE-']
image_elem.update(filename=image_paths[current_image])

Затем используйте цикл while для обработки событий и переключения между изображениями при нажатии на соответствующие кнопки:

while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED or event == 'Закрыть':
break
if event == 'Предыдущее изображение':
current_image = (current_image - 1) % len(image_paths)
if event == 'Следующее изображение':
current_image = (current_image + 1) % len(image_paths)
image_elem.update(filename=image_paths[current_image])

В этом примере мы переключаем между изображениями при нажатии на кнопки “Предыдущее изображение” и “Следующее изображение”. Мы также проверяем, была ли нажата кнопка “Закрыть” или окно было закрыто, чтобы выйти из цикла и закрыть приложение.

Наконец, не забудьте закрыть окно приложения:

window.close()

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

Заключение

PySimpleGUI - это мощный инструмент, который позволяет легко создавать графические приложения с использованием Python. В этой статье вы узнали о базовых элементах PySimpleGUI и научились создавать простые приложения и плеер изображений. Попробуйте экспериментировать с PySimpleGUI и создавать свои собственные интерфейсы для различных задач!