• ZetCode PyQt4 tutorial basic painting


    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    """
    ZetCode PyQt4 tutorial 
    
    In this example, we draw text in Russian azbuka.
    
    author: Jan Bodnar
    website: zetcode.com 
    last edited: September 2011
    """
    
    import sys
    from PyQt4 import QtGui, QtCore
    
    class Example(QtGui.QWidget):
        
        def __init__(self):
            super(Example, self).__init__()
            
            self.initUI()
            
        def initUI(self):      
    
            self.text = u'u041bu0435u0432 u041du0438u043au043eu043bu0430
    u0435u0432u0438u0447 u0422u043eu043bu0441u0442u043eu0439: 
    
    u0410u043du043du0430 u041au0430u0440u0435u043du0438u043du0430'
    
            self.setGeometry(300, 300, 280, 170)
            self.setWindowTitle('Draw text')
            self.show()
    
        # Drawing is done within the paint event.
        def paintEvent(self, event):
    
            # The QtGui.QPainter class is responsible for all the low-level painting. All the painting methods go between begin() and end() methods. The actual painting is delegated to the drawText() method.
            qp = QtGui.QPainter()
            qp.begin(self)
            self.drawText(event, qp)
            qp.end()
            
        def drawText(self, event, qp):
          
            qp.setPen(QtGui.QColor(168, 34, 3))
            qp.setFont(QtGui.QFont('Decorative', 10))
            # The drawText() method draws text on the window. The rect() method of the paint event returns the rectangle that needs to be updated.
            qp.drawText(event.rect(), QtCore.Qt.AlignCenter, self.text)        
                    
            
    def main():
        
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        sys.exit(app.exec_())
    
    
    if __name__ == '__main__':
        main()
    
    --------------------------------------------------------------------------------
    
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    """
    ZetCode PyQt4 tutorial 
    
    In the example, we draw randomly 1000 red points 
    on the window.
    
    author: Jan Bodnar
    website: zetcode.com 
    last edited: September 2011
    """
    
    import sys, random
    from PyQt4 import QtGui, QtCore
    
    class Example(QtGui.QWidget):
        
        def __init__(self):
            super(Example, self).__init__()
            
            self.initUI()
            
        def initUI(self):      
    
            self.setGeometry(300, 300, 280, 170)
            self.setWindowTitle('Points')
            self.show()
    
        def paintEvent(self, e):
    
            qp = QtGui.QPainter()
            qp.begin(self)
            self.drawPoints(qp)
            qp.end()
            
        def drawPoints(self, qp):
          
            # We set the pen to red colour. We use a predefined QtCore.Qt.red colour constant.
            qp.setPen(QtCore.Qt.red)
            # Each time we resize the window, a paint event is generated. We get the current size of the window with the size() method. We use the size of the window to distribute the points all over the client area of the window.
            size = self.size()
            
            for i in range(1000):
                x = random.randint(1, size.width()-1)
                y = random.randint(1, size.height()-1)
                # We draw the point with the drawPoint() method.
                qp.drawPoint(x, y)     
                    
            
    def main():
        
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        sys.exit(app.exec_())
    
    
    if __name__ == '__main__':
        main()
    
    --------------------------------------------------------------------------------
    
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    """
    ZetCode PyQt4 tutorial 
    
    This example draws three rectangles in three
    different colours. 
    
    author: Jan Bodnar
    website: zetcode.com 
    last edited: September 2011
    """
    
    import sys
    from PyQt4 import QtGui, QtCore
    
    class Example(QtGui.QWidget):
        
        def __init__(self):
            super(Example, self).__init__()
            
            self.initUI()
            
        def initUI(self):      
    
            self.setGeometry(300, 300, 350, 100)
            self.setWindowTitle('Colours')
            self.show()
    
        def paintEvent(self, e):
    
            qp = QtGui.QPainter()
            qp.begin(self)
            self.drawRectangles(qp)
            qp.end()
            
        def drawRectangles(self, qp):
          
            # Here we define a colour using a hexadecimal notation.
            color = QtGui.QColor(0, 0, 0)
            color.setNamedColor('#d4d4d4')
            qp.setPen(color)
    
            # Here we define a brush and draw a rectangle. A brush is an elementary graphics object which is used to draw the background of a shape. The drawRect() method accepts four parameters. The first two are x and y values on the axis. The third and fourth parameters are the width and height of the rectangle. The method draws the rectangle using the current pen and brush.
            qp.setBrush(QtGui.QColor(200, 0, 0))
            qp.drawRect(10, 15, 90, 60)
    
            qp.setBrush(QtGui.QColor(255, 80, 0, 160))
            qp.drawRect(130, 15, 90, 60)
    
            qp.setBrush(QtGui.QColor(25, 0, 90, 200))
            qp.drawRect(250, 15, 90, 60)
                  
            
    def main():
        
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        sys.exit(app.exec_())
    
    
    if __name__ == '__main__':
        main()
    
    --------------------------------------------------------------------------------
    
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    """
    ZetCode PyQt4 tutorial 
    
    In this example we draw 6 lines using
    different pen styles. 
    
    author: Jan Bodnar
    website: zetcode.com 
    last edited: September 2011
    """
    
    import sys
    from PyQt4 import QtGui, QtCore
    
    class Example(QtGui.QWidget):
        
        def __init__(self):
            super(Example, self).__init__()
            
            self.initUI()
            
        def initUI(self):      
    
            self.setGeometry(300, 300, 280, 270)
            self.setWindowTitle('Pen styles')
            self.show()
    
        def paintEvent(self, e):
    
            qp = QtGui.QPainter()
            qp.begin(self)
            self.drawLines(qp)
            qp.end()
            
        def drawLines(self, qp):
          
            # We create a QtGui.QPen object. The colour is black. The width is set to 2 pixels so that we can see the differences between the pen styles. The QtCore.Qt.SolidLine is one of the predefined pen styles.
            pen = QtGui.QPen(QtCore.Qt.black, 2, QtCore.Qt.SolidLine)
    
            qp.setPen(pen)
            qp.drawLine(20, 40, 250, 40)
    
            # Here we define a custom pen style. We set a QtCore.Qt.CustomDashLine pen style and call the setDashPattern() method. The list of numbers defines a style. There must be an even number of numbers. Odd numbers define a dash, even numbers space. The greater the number, the greater the space or the dash. Our pattern is 1px dash, 4px space, 5px dash, 4px space etc.
            pen.setStyle(QtCore.Qt.DashLine)
            qp.setPen(pen)
            qp.drawLine(20, 80, 250, 80)
    
            pen.setStyle(QtCore.Qt.DashDotLine)
            qp.setPen(pen)
            qp.drawLine(20, 120, 250, 120)
    
            pen.setStyle(QtCore.Qt.DotLine)
            qp.setPen(pen)
            qp.drawLine(20, 160, 250, 160)
    
            pen.setStyle(QtCore.Qt.DashDotDotLine)
            qp.setPen(pen)
            qp.drawLine(20, 200, 250, 200)
    
            pen.setStyle(QtCore.Qt.CustomDashLine)
            pen.setDashPattern([1, 4, 5, 4])
            qp.setPen(pen)
            qp.drawLine(20, 240, 250, 240)
                  
            
    def main():
        
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        sys.exit(app.exec_())
    
    
    if __name__ == '__main__':
        main()
    
    --------------------------------------------------------------------------------
    
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    """
    ZetCode PyQt4 tutorial 
    
    This example draws 9 rectangles in different
    brush styles.
    
    author: Jan Bodnar
    website: zetcode.com 
    last edited: September 2011
    """
    
    import sys
    from PyQt4 import QtGui, QtCore
    
    
    class Example(QtGui.QWidget):
        
        def __init__(self):
            super(Example, self).__init__()
            
            self.initUI()
            
        def initUI(self):      
    
            self.setGeometry(300, 300, 355, 280)
            self.setWindowTitle('Brushes')
            self.show()
    
        def paintEvent(self, e):
    
            qp = QtGui.QPainter()
            qp.begin(self)
            self.drawBrushes(qp)
            qp.end()
            
        def drawBrushes(self, qp):
          
            # We define a brush object. We set it to the painter object and draw the rectangle by calling the drawRect() method.
            brush = QtGui.QBrush(QtCore.Qt.SolidPattern)
            qp.setBrush(brush)
            qp.drawRect(10, 15, 90, 60)
    
            brush.setStyle(QtCore.Qt.Dense1Pattern)
            qp.setBrush(brush)
            qp.drawRect(130, 15, 90, 60)
    
            brush.setStyle(QtCore.Qt.Dense2Pattern)
            qp.setBrush(brush)
            qp.drawRect(250, 15, 90, 60)
    
            brush.setStyle(QtCore.Qt.Dense3Pattern)
            qp.setBrush(brush)
            qp.drawRect(10, 105, 90, 60)
    
            brush.setStyle(QtCore.Qt.DiagCrossPattern)
            qp.setBrush(brush)
            qp.drawRect(10, 105, 90, 60)
    
            brush.setStyle(QtCore.Qt.Dense5Pattern)
            qp.setBrush(brush)
            qp.drawRect(130, 105, 90, 60)
    
            brush.setStyle(QtCore.Qt.Dense6Pattern)
            qp.setBrush(brush)
            qp.drawRect(250, 105, 90, 60)
    
            brush.setStyle(QtCore.Qt.HorPattern)
            qp.setBrush(brush)
            qp.drawRect(10, 195, 90, 60)
    
            brush.setStyle(QtCore.Qt.VerPattern)
            qp.setBrush(brush)
            qp.drawRect(130, 195, 90, 60)
    
            brush.setStyle(QtCore.Qt.BDiagPattern)
            qp.setBrush(brush)
            qp.drawRect(250, 195, 90, 60)
                  
            
    def main():
        
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        sys.exit(app.exec_())
    
    
    if __name__ == '__main__':
        main()
  • 相关阅读:
    20145334赵文豪 《Java程序设计》第3周学习总结
    2145334赵文豪《Java程序设计》第2周学习总结
    20145334赵文豪 《Java程序设计》第1周学习总结
    20145326蔡馨熤《信息安全系统设计基础》第0周学习总结
    20145326 《Java程序设计》课程总结
    20145326 《Java程序设计》实验五——Java网络编程及安全实验报告
    20145326 《Java程序设计》第10周学习总结
    20145326 《Java程序设计》第9周学习总结
    20145326实验四 Android开发基础
    20145326蔡馨熠 实验三 "敏捷开发与XP实践"
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/4851880.html
Copyright © 2020-2023  润新知