PyQt — это библиотека для создания графических интерфейсов на языке Python, основанная на Qt Framework. Вот основные элементы, с которыми вы будете работать при использовании PyQt:
Это основной класс, который управляет приложением. Он необходим для создания любого приложения на PyQt. Создается только один экземпляр QApplication в каждом приложении:
import sys
from PyQt5.QtWidgets import QApplication
app = QApplication(sys.argv)Это базовый класс для всех объектов пользовательского интерфейса. QWidget может использоваться для создания окон, диалогов и других виджетов.
Подкласс QWidget, который предоставляет основные возможности для создания главного окна приложения. Он включает в себя меню, статусные строки и панели инструментов.
Для управления расположением виджетов в окне вы можете использовать различные менеджеры компоновки, такие как:
QHBoxLayout— горизонтальное расположение.QVBoxLayout— вертикальное расположение.QGridLayout— сеточное расположение.
PyQt предоставляет множество встроенных виджетов, которые используют для создания интерфейса:
QPushButton— кнопка.QLabel— метка для текста.QLineEdit— однострочное текстовое поле.QTextEdit— многострочное текстовое поле.QComboBox— выпадающий список.QCheckBoxиQRadioButton— элементы для выбора.
Сигналы и слоты — это механизм, который позволяет связывать действия (сигналы) с реакциями (слоты). Это основной способ обработки событий в PyQt. Пример:
button.clicked.connect(some_function) # при нажатии на кнопку button вызывается функция some_functionДиалоговые окна, используемые для получения информации от пользователя. Это могут быть простые модальные или немодальные диалоги.
Эти классы создают меню и панели инструментов, предоставляя пользователям доступ к различным функциям вашего приложения.
Используется для отображения служебной информации в нижней части главного окна, например, сообщений о состоянии или прогресса.
Класс, который позволяет выполнять функции через заданные интервалы времени, что полезно для создания анимации или периодических обновлений интерфейса.
Готовые диалоговые окна для взаимодействия с пользователем. Используются для сообщений с ошибками, предупреждений, подтверждений и т.п.
Создать приложение с графическим интерфейсом, позволяющее просматривать датасет из лабораторной работы №2. Необходимо создать файл main_window.py в котором будет реализован графический интерфейс вашего приложения. Итератор для изображений/аудиофайлов импортировать из файлов второй лабораторной работы. Сделать возможность выбора папки датасета или файла аннотации (в зависимости от устройства вашего итератора).
Приложение должно иметь кнопки для получения следующего изображения/аудиофайла из датасета. После нажатия на них должен быть получен следующий путь при помощи итератора, а затем отображено следующее изображение/аудио из вашего датасета в интерфейсе вашей программы.
Для создания графического интерфейса можно использовать Qt Designer.
Варианты 1-16:
- Отобразить изображение исходного размера или меньшего размера с сохранением пропорций (без деформации). Для работы с изображением использовать
QPixmap.
Варианты 17-30:
- Отобразить название композиции, длительность и кнопку проигрывания/остановки. При переключении на следующую композицию предыдущая должна останавливаться. Для работы с аудио использовать
QMediaPlayerили другую совместимую библиотеку.
По желанию можно реализовать дополнительный функционал, например:
- Изменение датасета (добавление, удаление, редактирование через приложение).
- Функции из лабораторных работ 2-4.
- Усовершенстовать оформление и работу с данными (зум для изображений, трек проигрывания и кнопка паузы для аудиофайла и т.п.)
- Иной функционал, касающийся работы с вашими данным.
При этом, основной функционал и понятность для пользователя приложения должны сохраняться.