web2 logo

Tekenen met pen

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, prameter2 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()

leeg venster

Toegevoegd door: Kees de Keijzer
Twitter: @kdkq

~ pyqt ~

~ Onderwerpen ~

Dit is een website zonder pop-ups

~ Links ~

Design & Development by Cyberwebdesign.nl for web2.nl © 2020.