Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Библиотека PyQt5. Объект QPixmap и картинка на QLabel

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Помещаем картинку на QLabel с помощью QPixmap и подгоняем под размер окна

Сегодня рассмотрим пример с картинкой в окне. Частный пример, когда картинка помещается на ярлык (QLabel) с использованием объекта QtGui.QPixmap. При этом и картинка и окно (QWidget) подгоняются под ориентировочно указанные размеры, так что картинка занимает всё пространство окна.

Программа представлена ниже, окна с картинкой на рисунке 1.

Скриншот программы. Полный текст программы см. ниже по ссылке
Скриншот программы. Полный текст программы см. ниже по ссылке
primer237.py

Сделаем несколько пояснений по представленной программе.

  • Напоминаю, что QFileDialog.getOpenFileName() позволяет выбрать нужный файл. В данном случае картинку.
  • self.pix - объект класса QPixmap. При создании объекта указывает имя файла-картинки.
  • С классом QLabel мы встречались уже неоднократно. Мы помещаем ярлык в левый верхний угол окна (его рабочей области) - move(0, 0).
  • Далее используем замечательный метод QPixmap.scaled(). С помощью него мы подгоняем размер картинки под размер окна. Но с сохранением пропорций! Т.е. картинка может занять не всю рабочую область окна. При этом: SmoothTransformation даёт плавность масштабирования; KeepAspectRatio даёт масштабирование до указанного прямоугольника на столько, на сколько это возможно для внутреннего содержимого, сохраняя пропорции.
  • Методом QLabel.setPixmap() мы помещаем картинку на ярлык. Размер ярлыка становится равным размеру картинки.
  • И последний штрих. Как я уже написал выше картинка может занимать не всю рабочую область окна. И в конце мы подгоняем теперь уже окно под размер картинки: self.setFixedSize(self.pix.width(), self.pix.height()).

Окно с изображением представлено ниже (см. Рисунок 1).

Рисунок 1. Окно с изображением. См. программу выше.
Рисунок 1. Окно с изображением. См. программу выше.

Ну, пока всё!

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

Не нравится фото, загрузите другое
Не нравится фото, загрузите другое