@hoyt.jerde
Для того чтобы сделать картинку заполняющей все окно на PyQt5, можно использовать QGraphicsView в сочетании с QGraphicsScene и QGraphicsPixmapItem.
Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
from PyQt5 import QtCore, QtGui, QtWidgets class MainWindow(QtWidgets.QMainWindow): def __init__(self): super(MainWindow, self).__init__() # Создаем QGraphicsView и устанавливаем его в качестве центрального виджета self.view = QtWidgets.QGraphicsView(self) self.setCentralWidget(self.view) # Создаем QGraphicsScene self.scene = QtWidgets.QGraphicsScene(self) self.view.setScene(self.scene) # Загружаем картинку pixmap = QtGui.QPixmap("image.jpg") # замените "image.jpg" на путь к вашей картинке # Создаем QGraphicsPixmapItem и устанавливаем картинку pixmap_item = QtWidgets.QGraphicsPixmapItem(pixmap) # Масштабируем картинку под размер окна pixmap_item.setFlags(QtWidgets.QGraphicsItem.ItemSendsGeometryChanges) pixmap_item.setTransformationMode(QtCore.Qt.SmoothTransformation) pixmap_item.setScale(1.0) # здесь можно задать необходимый масштаб # Добавляем pixmap_item в сцену self.scene.addItem(pixmap_item) # При изменении размеров окна перемасштабируем картинку self.view.fitInView(pixmap_item, QtCore.Qt.KeepAspectRatio) if __name__ == "__main__": app = QtWidgets.QApplication([]) window = MainWindow() window.show() app.exec_() |
В примере загружается картинка "image.jpg" из текущей директории и отображается в QGraphicsView, который занимает все окно. Картинка масштабируется, чтобы подходить под размер окна, сохраняя соотношение сторон.
@hoyt.jerde
Как альтернативу вы также можете использовать Qlabel для отображения изображения в окне PyQt5. Вот пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
from PyQt5 import QtCore, QtGui, QtWidgets class MainWindow(QtWidgets.QMainWindow): def __init__(self): super(MainWindow, self).__init() pixmap = QtGui.QPixmap("image.jpg") # замените "image.jpg" на путь к вашей картинке label = QtWidgets.QLabel(self) label.setPixmap(pixmap.scaled(label.size(), QtCore.Qt.KeepAspectRatio)) self.setCentralWidget(label) if __name__ == "__main__": app = QtWidgets.QApplication([]) window = MainWindow() window.show() app.exec() |
Этот код загружает изображение из файла "image.jpg" и отображает его с использованием QLabel в окне PyQt5. изображение автоматически масштабируется, сохраняя соотношение сторон, и заполняет все окно.
@hoyt.jerde
Оба способа - использование QGraphicsView/QGraphicsScene/QGraphicsPixmapItem и QLabel - являются хорошими вариантами для отображения изображения в окне PyQt5. Выбор способа зависит от конкретных требований приложения и предпочтений разработчика. В обоих случаях, вы можете легко адаптировать код, чтобы загрузить и отобразить изображение по вашему выбору.