1. 코드

import sys

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

class 도형그리기(QWidget):

    def __init__(self):
        super().__init__()
        self.UI초기화()

    def UI초기화(self):
        self.setGeometry(300, 300, 500, 500)
        self.setWindowTitle('도형 그리기!')
        self.show()

    def paintEvent(self, event):
        paint = QPainter()
        paint.begin(self)
        self.drawFigure(paint)
        paint.end()

    def drawFigure(self, paint):
        paint.setBrush(QColor(10, 255, 40))
        paint.setPen(QPen(QColor(Qt.red)))
        paint.drawRect(20, 30, 100, 100)

        paint.setBrush(QColor(10, 255, 40))
        paint.setPen(QPen(QColor(Qt.red)))
        paint.drawRoundedRect(150, 20, 100, 100, 30, 30)

        paint.setBrush(QBrush(Qt.CrossPattern))
        paint.drawRoundedRect(300, 100, 100, 100, 30, 30)

        paint.setBrush(QColor(Qt.darkGreen))
        paint.setPen(QPen(QColor(Qt.red), 2, Qt.DotLine))
        paint.drawEllipse(150, 200, 180, 220)

프로그램무한반복 = QApplication(sys.argv)
실행인스턴스 = 도형그리기()
프로그램무한반복.exec_()

2. 상세 내용

아래 코드를 보시면 QBrush를 통해 각각 도형의 패턴을 입히고 있는 것을 볼 수 있습니다. 또한 QPen에 QColor안에 들어가는 컬러 이름이 Qt에 내장되어 있다는 사실도 기억하고 가시면 좋을 것 같습니다.

paint.setPen(QPen(QColor(Qt.red))
#...
paint.setBrush(QBrush(Qt.CrossPattern))

HTML Color Codes

QColor - Qt for Python

QFont - Qt for Python

QPen - Qt for Python

QBrush - Qt for Python

3. 실행 화면

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/448886c6-1984-4766-8300-9f7b39a96f17/Untitled.png