diff options
Diffstat (limited to 'sources/pyside6/tests/QtGui/qpainter_test.py')
-rw-r--r-- | sources/pyside6/tests/QtGui/qpainter_test.py | 77 |
1 files changed, 37 insertions, 40 deletions
diff --git a/sources/pyside6/tests/QtGui/qpainter_test.py b/sources/pyside6/tests/QtGui/qpainter_test.py index 3efb6df8b..103b91ad6 100644 --- a/sources/pyside6/tests/QtGui/qpainter_test.py +++ b/sources/pyside6/tests/QtGui/qpainter_test.py @@ -1,31 +1,7 @@ -############################################################################# -## -## Copyright (C) 2016 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the test suite of Qt for Python. -## -## $QT_BEGIN_LICENSE:GPL-EXCEPT$ -## Commercial License Usage -## Licensees holding valid commercial Qt licenses may use this file in -## accordance with the commercial license agreement provided with the -## Software or, alternatively, in accordance with the terms contained in -## a written agreement between you and The Qt Company. For licensing terms -## and conditions see https://www.qt.io/terms-conditions. For further -## information use the contact form at https://www.qt.io/contact-us. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 3 as published by the Free Software -## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +import gc import os import sys import unittest @@ -35,18 +11,32 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1])) from init_paths import init_test_paths init_test_paths(False) -from PySide6.QtGui import QPainter, QLinearGradient +from helper.usesqapplication import UsesQApplication +from PySide6.QtGui import QPainter, QLinearGradient, QImage from PySide6.QtCore import QLine, QLineF, QPoint, QPointF, QRect, QRectF, Qt -class QPainterDrawText(unittest.TestCase): +try: + import numpy as np + HAVE_NUMPY = True +except ModuleNotFoundError: + HAVE_NUMPY = False + + +class QPainterDrawText(UsesQApplication): def setUp(self): - self.painter = QPainter() + super(QPainterDrawText, self).setUp() + self.image = QImage(32, 32, QImage.Format_ARGB32) + self.painter = QPainter(self.image) self.text = 'teste!' def tearDown(self): del self.text + self.painter.end() del self.painter + # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion + gc.collect() + super(QPainterDrawText, self).tearDown() def testDrawText(self): # bug #254 @@ -74,12 +64,12 @@ class QPainterDrawText(unittest.TestCase): def testDrawOverloads(self): '''Calls QPainter.drawLines overloads, if something is wrong Exception and chaos ensues. Bug #395''' - self.painter.drawLines([QLine(QPoint(0,0), QPoint(1,1))]) - self.painter.drawLines([QPoint(0,0), QPoint(1,1)]) - self.painter.drawLines([QPointF(0,0), QPointF(1,1)]) - self.painter.drawLines([QLineF(QPointF(0,0), QPointF(1,1))]) - self.painter.drawPoints([QPoint(0,0), QPoint(1,1)]) - self.painter.drawPoints([QPointF(0,0), QPointF(1,1)]) + self.painter.drawLines([QLine(QPoint(0, 0), QPoint(1, 1))]) + self.painter.drawLines([QPoint(0, 0), QPoint(1, 1)]) + self.painter.drawLines([QPointF(0, 0), QPointF(1, 1)]) + self.painter.drawLines([QLineF(QPointF(0, 0), QPointF(1, 1))]) + self.painter.drawPoints([QPoint(0, 0), QPoint(1, 1)]) + self.painter.drawPoints([QPointF(0, 0), QPointF(1, 1)]) self.painter.drawConvexPolygon([QPointF(10.0, 80.0), QPointF(20.0, 10.0), QPointF(80.0, 30.0), @@ -104,14 +94,21 @@ class QPainterDrawText(unittest.TestCase): QPoint(20.0, 10.0), QPoint(80.0, 30.0), QPoint(90.0, 70.0)]) + if HAVE_NUMPY: + x = np.array([10.0, 20.0, 80.0, 90.0]) + y = np.array([80.0, 10.0, 30.0, 70.0]) + self.painter.drawPointsNp(x, y) -class SetBrushWithOtherArgs(unittest.TestCase): + +class SetBrushWithOtherArgs(UsesQApplication): '''Using qpainter.setBrush with args other than QBrush''' def testSetBrushGradient(self): - painter = QPainter() - gradient = QLinearGradient(0, 0, 0, 0) - painter.setBrush(gradient) + image = QImage(32, 32, QImage.Format_ARGB32) + with QPainter(image) as painter: + gradient = QLinearGradient(0, 0, 0, 0) + painter.setBrush(gradient) + if __name__ == '__main__': unittest.main() |