PyQt5-绘制不同类型的直线

27 篇文章 1 订阅

PyQt5-绘制不同类型的直线

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/6/17 20:01
# @Author : kevin
# @Site : 
# @File : 绘制不同类型的直线.py
# @Software: PyCharm
"""
绘制不同类型的直线




"""
import sys,math
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import Qt

class DrawMultiLine(QWidget):
    def __init__(self):
        super(DrawMultiLine, self).__init__()
        self.resize(400, 300)  # 设置主窗口尺寸
        self.setWindowTitle('设置Pen的样式')  # 设置主窗口标题



    def paintEvent(self, event):
        painter = QPainter()  # 创建对象
        painter.begin(self)  #

        pen = QPen(Qt.red, 3, Qt.SolidLine)  # 红色,宽度为3像素, 实线____________
        painter.setPen(pen)  # 设置画笔
        painter.drawLine(40, 40, 350, 40)  # 40, 40, 350, 40 在resize中,起始横坐标, 起始纵坐标,结束横坐标,结束纵坐标
        #  -----------------------下面两行可以没有,没有的话就不写字---------------------------------------------
        painter.setFont(QFont('SimSun', 15))  # 设置字体,字号
        painter.drawText(40, 20, 320, 20, 100, '这是实线')  #
        #  ------------------------------------------------------------------------------------------------------

        pen = QPen(Qt.black, 3, Qt.DashLine)  # 黑色,宽度为3像素,虚线——————
        painter.setPen(pen)  # 设置画笔
        painter.drawLine(40, 80, 350, 80)  # 40, 80, 350, 80 在resize中,起始横坐标, 起始纵坐标,结束横坐标,结束纵坐标
        #  -----------------------下面两行可以没有,没有的话就不写字---------------------------------------------
        painter.setFont(QFont('SimSun', 15))  # 设置字体,字号
        painter.drawText(40, 40, 320, 40, 100, '这是虚线')  #
        #  ------------------------------------------------------------------------------------------------------

        pen = QPen(Qt.green, 3, Qt.DashDotLine)  # 绿色,宽度为3像素,点画线—.—.—.
        painter.setPen(pen)  # 设置画笔
        painter.drawLine(40, 120, 350, 120)  # 40, 120, 350, 120 在resize中,起始横坐标, 起始纵坐标,结束横坐标,结束纵坐标
        #  -----------------------下面两行可以没有,没有的话就不写字---------------------------------------------
        painter.setFont(QFont('SimSun', 15))  # 设置字体,字号
        painter.drawText(40, 60, 320, 60, 100, '这是点画线')  #
        #  ------------------------------------------------------------------------------------------------------

        pen = QPen(Qt.blue, 3, Qt.DotLine)  # 蓝色,宽度为3像素,密集虚线 ......
        painter.setPen(pen)  # 设置画笔
        painter.drawLine(40, 160, 350, 160)  # 40, 160, 350, 160 在resize中,起始横坐标, 起始纵坐标,结束横坐标,结束纵坐标
        #  -----------------------下面两行可以没有,没有的话就不写字---------------------------------------------
        painter.setFont(QFont('SimSun', 15))  # 设置字体,字号
        painter.drawText(40, 80, 320, 80, 100, '这是密集虚线')  #
        #  ------------------------------------------------------------------------------------------------------

        pen = QPen(Qt.gray, 3, Qt.DashDotDotLine)  # 灰色,宽度为3像素,点点线 —..—..—
        painter.setPen(pen)  # 设置画笔
        painter.drawLine(40, 200, 350, 200)  # 40, 200, 350, 200 在resize中,起始横坐标, 起始纵坐标,结束横坐标,结束纵坐标
        #  -----------------------下面两行可以没有,没有的话就不写字---------------------------------------------
        painter.setFont(QFont('SimSun', 15))  # 设置字体,字号
        painter.drawText(40, 100, 320, 100, 100, '这是点点线')  #
        #  ------------------------------------------------------------------------------------------------------

        size = self.size()
        painter.end()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = DrawMultiLine()
    main.show()
    sys.exit(app.exec_())

示例图

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5是Python语言的GUI编程工具包,其中包含了QPainter类,可以用来绘制各种图形。下面是一些常见的图形及其绘制方法: 1. 直线 ```python from PyQt5.QtGui import QPainter, QPen from PyQt5.QtCore import Qt pen = QPen(Qt.black, 2, Qt.SolidLine) painter = QPainter() painter.begin(self) painter.setPen(pen) painter.drawLine(0, 0, 100, 100) painter.end() ``` 2. 矩形 ```python from PyQt5.QtGui import QPainter, QPen, QBrush from PyQt5.QtCore import Qt pen = QPen(Qt.black, 2, Qt.SolidLine) brush = QBrush(Qt.gray) painter = QPainter() painter.begin(self) painter.setPen(pen) painter.setBrush(brush) painter.drawRect(0, 0, 100, 100) painter.end() ``` 3. 圆形 ```python from PyQt5.QtGui import QPainter, QPen, QBrush from PyQt5.QtCore import Qt pen = QPen(Qt.black, 2, Qt.SolidLine) brush = QBrush(Qt.gray) painter = QPainter() painter.begin(self) painter.setPen(pen) painter.setBrush(brush) painter.drawEllipse(0, 0, 100, 100) painter.end() ``` 4. 文字 ```python from PyQt5.QtGui import QPainter, QFont from PyQt5.QtCore import Qt font = QFont("Arial", 16) painter = QPainter() painter.begin(self) painter.setFont(font) painter.drawText(0, 0, "Hello PyQt5") painter.end() ``` 5. 多边形 ```python from PyQt5.QtGui import QPainter, QPen, QBrush from PyQt5.QtCore import Qt, QPoint pen = QPen(Qt.black, 2, Qt.SolidLine) brush = QBrush(Qt.gray) painter = QPainter() painter.begin(self) painter.setPen(pen) painter.setBrush(brush) points = [QPoint(0, 0), QPoint(50, 50), QPoint(100, 0)] painter.drawPolygon(points) painter.end() ``` 以上只是一些常见的图形,QPainter还支持更多的绘制方法,比如曲线、扇形等等,具体可以参考官方文档。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值