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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
import unittest
import AnyQt
from AnyQt.QtCore import Qt, QPointF, QRectF
from AnyQt.QtGui import QPainter, QPixmap, QImage, QGuiApplication, QColor
from AnyQt.QtWidgets import QApplication
class TestDrawPixmapFragments(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
super().setUpClass()
app = QApplication.instance()
if app is None:
app = QApplication([])
cls.app = app
@classmethod
def tearDownClass(cls) -> None:
cls.app = None
super().tearDownClass()
def test(self):
img = QImage(100, 100, QImage.Format_ARGB32)
img.fill(Qt.green)
p = QPainter(img)
pix = QPixmap(10, 10)
pix.fill(Qt.red)
frgmts = [
QPainter.PixmapFragment.create(
QPointF(25, 25),
QRectF(0, 0, 10, 10),
5., 5.,
),
QPainter.PixmapFragment.create(
QPointF(75, 75),
QRectF(0, 0, 10, 10),
5., 5.,
)
]
p.drawPixmapFragments(frgmts, pix)
p.end()
self.assertEqual(QColor(img.pixel(10, 10)), QColor(Qt.red))
self.assertEqual(QColor(img.pixel(80, 80)), QColor(Qt.red))
self.assertEqual(QColor(img.pixel(90, 10)), QColor(Qt.green))
self.assertEqual(QColor(img.pixel(10, 90)), QColor(Qt.green))
@unittest.skipIf(not AnyQt.USED_API.lower().startswith("pyside"), "PySide only")
def test_pyside(self):
img = QImage(100, 100, QImage.Format_ARGB32)
img.fill(Qt.green)
p = QPainter(img)
pix = QPixmap(10, 10)
pix.fill(Qt.red)
frgmt = QPainter.PixmapFragment.create(
QPointF(25, 25),
QRectF(0, 0, 10, 10),
5., 5.,
)
p.drawPixmapFragments(frgmt, 1, pix)
p.end()
self.assertEqual(QColor(img.pixel(10, 10)), QColor(Qt.red))
|