1 ############################################################################ 2 ## 3 ## Copyright (C) 2016 The Qt Company Ltd. 4 ## Contact: https://www.qt.io/licensing/ 5 ## 6 ## This file is part of the examples of Qt for Python. 7 ## 8 ## $QT_BEGIN_LICENSE:BSD$ 9 ## Commercial License Usage 10 ## Licensees holding valid commercial Qt licenses may use this file in 11 ## accordance with the commercial license agreement provided with the 12 ## Software or, alternatively, in accordance with the terms contained in 13 ## a written agreement between you and The Qt Company. For licensing terms 14 ## and conditions see https://www.qt.io/terms-conditions. For further 15 ## information use the contact form at https://www.qt.io/contact-us. 16 ## 17 ## BSD License Usage 18 ## Alternatively, you may use this file under the terms of the BSD license 19 ## as follows: 20 ## 21 ## "Redistribution and use in source and binary forms, with or without 22 ## modification, are permitted provided that the following conditions are 23 ## met: 24 ## * Redistributions of source code must retain the above copyright 25 ## notice, this list of conditions and the following disclaimer. 26 ## * Redistributions in binary form must reproduce the above copyright 27 ## notice, this list of conditions and the following disclaimer in 28 ## the documentation and/or other materials provided with the 29 ## distribution. 30 ## * Neither the name of The Qt Company Ltd nor the names of its 31 ## contributors may be used to endorse or promote products derived 32 ## from this software without specific prior written permission. 33 ## 34 ## 35 ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 36 ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 37 ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 38 ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 39 ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 40 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 41 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 42 ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 43 ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 44 ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 45 ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 46 ## 47 ## $QT_END_LICENSE$ 48 ## 49 ############################################################################ 50 51 52 //! [0] 53 def paintEvent(self, event) 54 painter = QPainter(self) 55 painter.setPen(QPen(Qt.blue, 1, Qt.DashLine)) 56 painter.drawRect(0, 0, 100, 100) 57 58 painter.rotate(45) 59 60 painter.setFont(QFont("Helvetica", 24)) 61 painter.setPen(QPen(Qt.black, 1)) 62 painter.drawText(20, 10, "QTransform") 63 //! [0] 64 65 //! [1] 66 def paintEvent(self, event) 67 painter = QPainter(self) 68 painter.setPen(QPen(Qt.blue, 1, Qt.DashLine)) 69 painter.drawRect(0, 0, 100, 100) 70 71 transform = QTransform() 72 transform.translate(50, 50) 73 transform.rotate(45) 74 transform.scale(0.5, 1.0) 75 painter.setTransform(transform) 76 77 painter.setFont(QFont("Helvetica", 24)) 78 painter.setPen(QPen(Qt.black, 1)) 79 painter.drawText(20, 10, "QTransform") 80 //! [1] 81 82 83 //! [2] 84 def paintEvent(self, event) 85 pi = 3.14 86 87 a = pi/180 * 45.0 88 sina = sin(a) 89 cosa = cos(a) 90 91 translationTransform = QTransform(1, 0, 0, 1, 50.0, 50.0) 92 rotationTransform = QTransform(cosa, sina, -sina, cosa, 0, 0) 93 scalingTransform = QTransform(0.5, 0, 0, 1.0, 0, 0) 94 95 transform = QTransform() 96 transform = scalingTransform * rotationTransform * translationTransform 97 98 painter = QPainter(self) 99 painter.setPen(QPen(Qt.blue, 1, Qt.DashLine)) 100 painter.drawRect(0, 0, 100, 100) 101 102 painter.setTransform(transform) 103 104 painter.setFont(QFont("Helvetica", 24)) 105 painter.setPen(QPen(Qt.black, 1)) 106 painter.drawText(20, 10, "QTransform") 107 108 //! [2] 109 110 111