Tekenen met pen

Op deze pagina:

    De pen hoeft geen ononderbroken lijnen te tekenen. Onderbroken lijnen, stippellijnen bijvoorbeeld, kunnen ook.

    
    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    
    import sys
    from PyQt5.QtWidgets import QApplication, QWidget
    from PyQt5.QtGui import QPainter, QPen
    from PyQt5.QtCore import Qt
    
    class Venster(QWidget):
    
        def __init__(self):
            super(Venster, self).__init__()
    
            self.initUI()
    
        def initUI(self):
    
            self.setGeometry(400, 400, 280, 270)
            self.setWindowTitle('Pen stijlen')
            self.show()
    
        def paintEvent(self, e):
    
            qp = QPainter()
            qp.begin(self)
            self.drawLines(qp)
            qp.end()
    
        def drawLines(self, qp):
    
            pen = QPen(Qt.black, 2, Qt.SolidLine)
    
            x1 = 20
            x2 = 250
    
            # De lijnen lopen van x1,y1 naar x2,y2
            # Omdat y1 en y2 hier steeds aan
            # elkaar gelijk zijn,
            # zijn het horizontale lijnen
    
            qp.setPen(pen)
            qp.drawLine(x1, 40, x2, 40)
    
            pen.setStyle(Qt.DashLine)
            qp.setPen(pen)
            qp.drawLine(x1, 80, x2, 80)
    
            pen.setStyle(Qt.DashDotLine)
            qp.setPen(pen)
            qp.drawLine(x1, 120, x2, 120)
    
            pen.setStyle(Qt.DotLine)
            qp.setPen(pen)
            qp.drawLine(x1, 160, x2, 160)
    
            pen.setStyle(Qt.DashDotDotLine)
            qp.setPen(pen)
            qp.drawLine(x1, 200, x2, 200)
    
            pen.setStyle(Qt.CustomDashLine)
            # het patroon hier is parameter1 lijn,
            # parameter2 lege ruimte,
            # parameter3 lijn,
            # parameter4 lege ruimte, enz.
            # de parameters worden opgegeven in pixels
            pen.setDashPattern([1, 6, 5, 3])
            qp.setPen(pen)
            qp.drawLine(x1, 240, x2, 240)
    
    def main():
    
        app = QApplication(sys.argv)
        window = Venster()
        sys.exit(app.exec_())
    
    if __name__ == '__main__':
        main()
    

    pen

     

    Verwante artikelen