[GUI mit Python] PyQt5 -Paint-

Fortsetzung von Letztes Mal

Painting Ich werde diese Seite grob auf Japanisch zusammenfassen.

[Charakterfarbe]

Drawing_text.py


#!/usr/bin/python3
# -*- coding: utf-8 -*-


import sys
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QColor, QFont
from PyQt5.QtCore import Qt


class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):      

        self.text = u'\u041b\u0435\u0432 \u041d\u0438\u043a\u043e\u043b\u0430\
\u0435\u0432\u0438\u0447 \u0422\u043e\u043b\u0441\u0442\u043e\u0439: \n\
\u0410\u043d\u043d\u0430 \u041a\u0430\u0440\u0435\u043d\u0438\u043d\u0430'

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('Draw text')
        self.show()
        

    #Ereignishandler zum Zeichnen
    def paintEvent(self, event):

        qp = QPainter()
        #Schreiben Sie eine Methode zum Malen zwischen der Anfangs- und der Endmethode
        qp.begin(self)
        self.drawText(event, qp)
        qp.end()
        
        
    def drawText(self, event, qp):
      
        #Textfarbspezifikation
        qp.setPen(QColor(168, 34, 3))
        #Geben Sie Schriftart und Schriftgröße an
        qp.setFont(QFont('Decorative', 10))
        #Das erste Argument ist der Hauptbildschirm, der aktualisiert werden muss
        #Das zweite Argument verschiebt das Zeichen in die Mitte
        #Das dritte Argument ist der einzufügende Text
        qp.drawText(event.rect(), Qt.AlignCenter, self.text)
                
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
draw_text.png

[Zeichne einen Punkt]

Drawing_points.py


#!/usr/bin/python3
# -*- coding: utf-8 -*-


import sys, random
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QColor, QPen
from PyQt5.QtCore import Qt


class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):      

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('Points')
        self.show()
        

    def paintEvent(self, e):

        qp = QPainter()
        qp.begin(self)
        self.drawPoints(qp)
        qp.end()
        
        
    def drawPoints(self, qp):
      
        #Bereiten Sie einen roten Stift vor
        qp.setPen(Qt.red)
        #Legen Sie die Fenstergröße fest (paintEvent tritt auf, wenn sich die Größe ändert).
        size = self.size()
        
        #Zeichne 1000 Punkte nach dem Zufallsprinzip
        for i in range(1000):
            x = random.randint(1, size.width()-1)
            y = random.randint(1, size.height()-1)
            qp.drawPoint(x, y)     
                
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
points.png

[So legen Sie die Farbe fest]

Colours.py


#!/usr/bin/python3
# -*- coding: utf-8 -*-


import sys
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QColor, QBrush


class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):      

        self.setGeometry(300, 300, 350, 100)
        self.setWindowTitle('Colours')
        self.show()


    def paintEvent(self, e):

        qp = QPainter()
        qp.begin(self)
        self.drawRectangles(qp)
        qp.end()

        
    def drawRectangles(self, qp):
      
        #Geben Sie die Farbe der Linie um das Rechteck (RGB) an.
        col = QColor(0, 0, 0)
        #Geben Sie die Farbe der Linie um das Rechteck an (hexarisch).
        col.setNamedColor('#d4d4d4')
        #Stellen Sie die Stiftfarbe ein
        qp.setPen(col)

        # Qcolor(Red, Green, Blue, Alpha)Alpha ist transparent
        qp.setBrush(QColor(200, 0, 0))
        # drawRect(x, y, width, height)
        qp.drawRect(10, 15, 90, 60)

        qp.setBrush(QColor(255, 80, 0, 160))
        qp.drawRect(130, 15, 90, 60)

        qp.setBrush(QColor(25, 0, 90, 200))
        qp.drawRect(250, 15, 90, 60)
              
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
colours.png

[Stiftstil]

QPen.py


#!/usr/bin/python3
# -*- coding: utf-8 -*-


import sys
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QColor, QPen
from PyQt5.QtCore import Qt


class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):      

        self.setGeometry(300, 300, 280, 270)
        self.setWindowTitle('Pen styles')
        self.show()
        

    def paintEvent(self, e):

        qp = QPainter()
        qp.begin(self)
        self.drawLines(qp)
        qp.end()
        
        
    def drawLines(self, qp):
        
        #Stellen Sie die Stiftfarbe auf Schwarz, die Breite auf 2 Pixel und den Stil auf SolidLine ein.
        pen = QPen(Qt.black, 2, Qt.SolidLine)

        #Stellen Sie den oben angegebenen Stiftstil ein
        qp.setPen(pen)
        #Zeichnung
        qp.drawLine(20, 40, 250, 40)

        #Ändern Sie den Stil in Strichlinie
        pen.setStyle(Qt.DashLine)
        qp.setPen(pen)
        qp.drawLine(20, 80, 250, 80)

        pen.setStyle(Qt.DashDotLine)
        qp.setPen(pen)
        qp.drawLine(20, 120, 250, 120)

        pen.setStyle(Qt.DotLine)
        qp.setPen(pen)
        qp.drawLine(20, 160, 250, 160)

        pen.setStyle(Qt.DashDotDotLine)
        qp.setPen(pen)
        qp.drawLine(20, 200, 250, 200)

        #Stellen Sie Ihren eigenen Stil ein
        pen.setStyle(Qt.CustomDashLine)
        # setDashPattern([1px Linie,4px Speicherplatz,5px Linie,4px Speicherplatz])
        pen.setDashPattern([1, 4, 5, 4])
        qp.setPen(pen)
        qp.drawLine(20, 240, 250, 240)
              
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
pen_style.png

【füllen】

QBrush.py


#!/usr/bin/python3
# -*- coding: utf-8 -*-


import sys
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QBrush
from PyQt5.QtCore import Qt


class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):      

        self.setGeometry(300, 300, 355, 280)
        self.setWindowTitle('Brushes')
        self.show()
        

    def paintEvent(self, e):

        qp = QPainter()
        qp.begin(self)
        self.drawBrushes(qp)
        qp.end()
        
        
    def drawBrushes(self, qp):
      
        #Geben Sie den Solid Pattern-Stil an
        brush = QBrush(Qt.SolidPattern)
        #Als Pinsel bezeichnet
        qp.setBrush(brush)
        #Machen Sie ein Rechteck und füllen Sie es
        qp.drawRect(10, 15, 90, 60)

        brush.setStyle(Qt.Dense1Pattern)
        qp.setBrush(brush)
        qp.drawRect(130, 15, 90, 60)

        brush.setStyle(Qt.Dense2Pattern)
        qp.setBrush(brush)
        qp.drawRect(250, 15, 90, 60)

        brush.setStyle(Qt.Dense3Pattern)
        qp.setBrush(brush)
        qp.drawRect(10, 105, 90, 60)

        brush.setStyle(Qt.DiagCrossPattern)
        qp.setBrush(brush)
        qp.drawRect(10, 105, 90, 60)

        brush.setStyle(Qt.Dense5Pattern)
        qp.setBrush(brush)
        qp.drawRect(130, 105, 90, 60)

        brush.setStyle(Qt.Dense6Pattern)
        qp.setBrush(brush)
        qp.drawRect(250, 105, 90, 60)

        brush.setStyle(Qt.HorPattern)
        qp.setBrush(brush)
        qp.drawRect(10, 195, 90, 60)

        brush.setStyle(Qt.VerPattern)
        qp.setBrush(brush)
        qp.drawRect(130, 195, 90, 60)

        brush.setStyle(Qt.BDiagPattern)
        qp.setBrush(brush)
        qp.drawRect(250, 195, 90, 60)
              
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
brushes.png

Nächstes Mal wird Benutzerdefinierte Widgets ungefähr versuchen.

Recommended Posts

[GUI mit Python] PyQt5 -Paint-
[GUI mit Python] PyQt5-Vorbereitung-
[GUI mit Python] PyQt5 -Widget II-
[GUI mit Python] PyQt5 -Custom Widget-
Ich habe eine GUI-App mit Python + PyQt5 erstellt
Python-Kompilierung mit pyqt deploy
[GUI in Python] PyQt5-Layout-Management-
[GUI in Python] PyQt5 -Event-
Lassen Sie uns eine GUI mit Python erstellen.
[GUI mit Python] PyQt5-Der erste Schritt-
FizzBuzz in Python3
Scraping mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Fröhliche GUI-Konstruktion mit Elektron und Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
GUI-Bildschneidewerkzeug mit Python + Tkinter
GUI-Automatisierung mit Python x Windows App Driver
Sie können auch mit Python problemlos eine GUI erstellen
Einfache Erstellung von Verkaufstools mit Python-GUI: Schätzung erstellen
Dateidialog mit Python-GUI öffnen (tkinter.filedialog)
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Python lernen mit ChemTHEATER 03
Sequentielle Suche mit Python
"Objektorientiert" mit Python gelernt
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1
Lerne Python mit ChemTHEATER
Führen Sie prepDE.py mit python3 aus
1.1 Erste Schritte mit Python
Tweets mit Python sammeln
Binarisierung mit OpenCV / Python
3. 3. KI-Programmierung mit Python
Kernel-Methode mit Python
Scraping mit Python + PhantomJS
Fahren Sie WebDriver mit Python
[Python] Mit CGIHTTPServer umleiten
Sprachanalyse mit Python
Denken Sie an Yaml mit Python
Kinesis mit Python betreiben