diff options
Diffstat (limited to 'examples/widgets/imageviewer/imageviewer.py')
-rw-r--r-- | examples/widgets/imageviewer/imageviewer.py | 72 |
1 files changed, 17 insertions, 55 deletions
diff --git a/examples/widgets/imageviewer/imageviewer.py b/examples/widgets/imageviewer/imageviewer.py index ebcae5fa4..93b1e87ba 100644 --- a/examples/widgets/imageviewer/imageviewer.py +++ b/examples/widgets/imageviewer/imageviewer.py @@ -1,51 +1,14 @@ -############################################################################# -## -## Copyright (C) 2021 The Qt Company Ltd. -## Contact: http://www.qt.io/licensing/ -## -## This file is part of the Qt for Python examples of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:BSD$ -## You may use this file under the terms of the BSD license as follows: -## -## "Redistribution and use in source and binary forms, with or without -## modification, are permitted provided that the following conditions are -## met: -## * Redistributions of source code must retain the above copyright -## notice, this list of conditions and the following disclaimer. -## * Redistributions in binary form must reproduce the above copyright -## notice, this list of conditions and the following disclaimer in -## the documentation and/or other materials provided with the -## distribution. -## * Neither the name of The Qt Company Ltd nor the names of its -## contributors may be used to endorse or promote products derived -## from this software without specific prior written permission. -## -## -## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause from PySide6.QtPrintSupport import QPrintDialog, QPrinter from PySide6.QtWidgets import (QApplication, QDialog, QFileDialog, QLabel, - QMainWindow, QMenuBar, QMessageBox, QScrollArea, - QScrollBar, QSizePolicy, QStatusBar) -from PySide6.QtGui import (QAction, QClipboard, QColorSpace, QGuiApplication, - QImage, QImageReader, QImageWriter, QKeySequence, - QPalette, QPainter, QPixmap, QScreen) -from PySide6.QtCore import QDir, QMimeData, QStandardPaths, Qt, Slot + QMainWindow, QMessageBox, QScrollArea, + QSizePolicy) +from PySide6.QtGui import (QColorSpace, QGuiApplication, + QImageReader, QImageWriter, QKeySequence, + QPalette, QPainter, QPixmap) +from PySide6.QtCore import QDir, QStandardPaths, Qt, Slot ABOUT = """<p>The <b>Image Viewer</b> example shows how to combine QLabel @@ -71,7 +34,7 @@ class ImageViewer(QMainWindow): self._image_label = QLabel() self._image_label.setBackgroundRole(QPalette.Base) self._image_label.setSizePolicy(QSizePolicy.Ignored, - QSizePolicy.Ignored) + QSizePolicy.Ignored) self._image_label.setScaledContents(True) self._scroll_area = QScrollArea() @@ -155,15 +118,14 @@ class ImageViewer(QMainWindow): printer = QPrinter() dialog = QPrintDialog(printer, self) if dialog.exec() == QDialog.Accepted: - painter = QPainter(printer) - pixmap = self._image_label.pixmap() - rect = painter.viewport() - size = pixmap.size() - size.scale(rect.size(), Qt.KeepAspectRatio) - painter.setViewport(rect.x(), rect.y(), size.width(), size.height()) - painter.setWindow(pixmap.rect()) - painter.drawPixmap(0, 0, pixmap) - painter.end() + with QPainter(printer) as painter: + pixmap = self._image_label.pixmap() + rect = painter.viewport() + size = pixmap.size() + size.scale(rect.size(), Qt.KeepAspectRatio) + painter.setViewport(rect.x(), rect.y(), size.width(), size.height()) + painter.setWindow(pixmap.rect()) + painter.drawPixmap(0, 0, pixmap) @Slot() def _copy(self): |