pyqt绘制各种图形

pyqt绘制各种图形

  • 介绍
  • 效果
  • 代码

介绍

使用pyqt绘制各种图形

效果

在这里插入图片描述

代码

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QPen, QBrush, QColor, QFont, QPolygonF  # 导入 QPolygonF
from PyQt5.QtCore import Qt, QPoint, QPointF, QRect


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

    def initUI(self):
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Draw Shapes with PyQt')
        self.show()

    def paintEvent(self, e):
        qp = QPainter()
        qp.begin(self)
        self.draw_rectangle(qp)
        self.draw_ellipse(qp)
        self.draw_polygon(qp)
        self.draw_text(qp)
        qp.end()

    def draw_rectangle(self, qp):
        # 绘制一个矩形
        pen = QPen(Qt.black, 2)
        qp.setPen(pen)
        qp.drawRect(50, 50, 100, 50)  # 矩形的左上角坐标和宽度、高度

    def draw_ellipse(self, qp):
        # 绘制一个椭圆
        pen = QPen(Qt.blue, 2)
        qp.setPen(pen)
        qp.setBrush(QBrush(QColor(200, 200, 255, 100)))  # 设置填充颜色和透明度
        qp.drawEllipse(180, 50, 100, 50)  # 椭圆的左上角坐标和宽度、高度

    def draw_polygon(self, qp):
        # 绘制一个多边形
        pen = QPen(Qt.red, 2)
        qp.setPen(pen)
        qp.setBrush(QBrush(QColor(255, 100, 100)))  # 设置填充颜色
        points = [QPointF(50, 100), QPointF(100, 150), QPointF(150, 100)]  # 多边形的顶点
        qp.drawPolygon(QPolygonF(points))

    def draw_text(self, qp):
        # 绘制文本
        pen = QPen(Qt.black, 2)
        qp.setPen(pen)
        font = QFont("Arial", 12)  # 设置字体
        qp.setFont(font)
        qp.drawText(50, 170, "Hello, PyQt!")  # 文本的起始位置和文本内容


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = DrawShapesWidget()
    sys.exit(app.exec_())
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PyQt5中的QPainter提供了丰富的绘图功能,可以用于绘制各种图形,包括直线、矩形、圆形、椭圆、多边形、贝塞尔曲线等。下面分别介绍这些图形绘制方法。 ### 直线 绘制直线可以使用QPainter的drawLine()方法。该方法需要指定直线的起点和终点坐标。 ```python from PyQt5.QtGui import QPainter, QPen from PyQt5.QtCore import Qt pen = QPen(Qt.black) # 创建画笔对象 pen.setWidth(2) # 设置画笔宽度 painter = QPainter() # 创建画家对象 painter.begin(self) # 开始绘画 painter.setPen(pen) # 设置画笔 painter.drawLine(0, 0, 100, 100) # 绘制直线 painter.end() # 结束绘画 ``` ### 矩形 绘制矩形可以使用QPainter的drawRect()方法。该方法需要指定矩形左上角坐标和矩形的宽度和高度。 ```python painter.drawRect(50, 50, 100, 100) # 绘制矩形 ``` ### 圆形 绘制圆形可以使用QPainter的drawEllipse()方法。该方法需要指定圆形的外接矩形。 ```python painter.drawEllipse(50, 50, 100, 100) # 绘制圆形 ``` ### 椭圆 绘制椭圆可以使用QPainter的drawEllipse()方法。该方法需要指定椭圆的外接矩形。 ```python painter.drawEllipse(50, 50, 100, 50) # 绘制椭圆 ``` ### 多边形 绘制多边形可以使用QPainter的drawPolygon()方法。该方法需要指定多边形的各个顶点坐标。 ```python points = [QPoint(50, 50), QPoint(100, 50), QPoint(100, 100), QPoint(50, 100)] painter.drawPolygon(points) # 绘制多边形 ``` ### 贝塞尔曲线 绘制贝塞尔曲线可以使用QPainter的drawBezierCurve()方法。该方法需要指定曲线的起点、控制点和终点坐标。 ```python painter.drawBezierCurve(50, 50, 75, 100, 125, 100, 150, 50) # 绘制贝塞尔曲线 ``` 以上是QPainter绘制各种图形的方法,你可以根据需要进行选择和组合。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立秋6789

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值