drawPolygon() 을 이용하면 다양한 다각형을 그릴 수 있습니다.
PyQt5.QtCore.QPoint Class를 이용해서 각 꼭지점의 점을 정의하고,
QPolygon Class를 이용해서 각 점들을 연결하여 다각형을 만듭니다.
마지막으로 drawPolygon()에 이 다각형을 입력함으로써 다각형이 그려집니다.
51-1 예제: ex50
import sys from PyQt5.QtWidgets import (QApplication, QWidget) from PyQt5.QtGui import (QPainter, QPen, QColor, QFont, QPolygon, QBrush) from PyQt5.QtCore import Qt, QPoint class MyApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 400, 300) self.setWindowTitle('drawPolygon') self.show() def paintEvent(self, e): qp = QPainter() qp.begin(self) self.draw_polygon(qp) qp.end() def draw_polygon(self, qp): points1 = [ QPoint(20, 20), QPoint(200, 80), QPoint(150, 135), QPoint(50, 115) ] polygon1 = QPolygon(points1) qp.setPen(QPen(Qt.black, 3)) qp.drawPolygon(polygon1) points2 = [ QPoint(220, 30), QPoint(360, 10), QPoint(250, 135) ] polygon2 = QPolygon(points2) qp.setPen(QPen(Qt.red, 5, Qt.DashLine)) qp.setBrush(QBrush(Qt.yellow)) qp.drawPolygon(polygon2) points3 = [ QPoint(95, 140), QPoint(120, 190), QPoint(185, 205), QPoint(125, 230), QPoint(140, 280), QPoint(100, 230), QPoint(70, 280), QPoint(60, 220), QPoint(15, 190), QPoint(65, 180) ] polygon3 = QPolygon(points3) qp.setPen(QPen(QColor('#1C91CF'), 4, Qt.DashDotDotLine)) qp.setBrush(QBrush(QColor('#37CF1C'), Qt.CrossPattern)) qp.drawPolygon(polygon3) points4 = [ QPoint(290, 160), QPoint(360, 190), QPoint(335, 280), QPoint(255, 270), QPoint(230, 195) ] polygon4 = QPolygon(points4) qp.setPen(QPen(QColor('#7B33D1'), 3)) qp.setBrush(QBrush(QColor('#D187EF'))) qp.drawPolygon(polygon4) if __name__ == '__main__': app = QApplication(sys.argv) win = MyApp() sys.exit(app.exec_()) |
51-2 결과
'프로그래밍 > PyQt5 GUI' 카테고리의 다른 글
53. 호 그리기 (drawArc) (0) | 2021.07.30 |
---|---|
52. 타원 그리기 (drawEllipse) (0) | 2021.07.29 |
50. 둥근 직사각형 그리기 (drawRoundedRect) (0) | 2021.07.29 |
49. 직사각형 그리고 (drawRect) (0) | 2021.07.29 |
48. 직선 그리고 (drawLine) (0) | 2021.07.29 |