• Qt 5.9.5 2D图形汇总


    前言

    1、为什么需要2D绘图

    在Qt界面编程中,通常会遇到使用Qt自带控件解决不了的问题,这时2D绘图给我们提供了专用的定制化的工具。

    2、QPainter介绍

    2D绘图离不开QPaintet,可以把QPainter想成一个画笔,开发人员拿着画笔理论上可以绘制任何你想要的图形。QPainter一般在一个部件(Widget)重绘事件(PaintEvent)的处理函数PaintEvent()中进行绘制,首先要创建QPainter对象(画笔),然后进行图形的绘制。

    3、QPainter中常用的图形绘制函数

    (1)drawArc(); //绘制弧形
    (2)drawChord(); //绘制弦
    (3)drawConvexPolygon(); //绘制凸多边形
    (4)drawEllipse(); //绘制椭圆(PS:椭圆是先整个框,然后逼近)
    (5)drawImage(); //绘制图像
    (6)drawLine(); //绘制线
    (7)drawLines(); //绘制多条线
    (8)drawPath(); //绘制路径(PS:想咋画咋画,但是必须是直的)
    (9)drawPicture(); // 按照QPainter指令绘画(PS:将加载的二进制文件绘制)
    (10)drawPie(); //绘制扇形
    (11)drawPixmap(); // 绘制图像
    (12)drawPoint(); //绘制点
    (13)drawPoints(); //绘制多个点
    (14)drawPolygon(); //绘制多边形
    (15)drawPolyline(); //绘制多条折线
    (16)drawRect(); //绘制矩形
    (17)drawRects() ; //绘制多个矩形
    (18)drawRoundRcet(); //绘制圆角矩形
    (19)drawText(); //绘制文字
    (20)drawTilcdPixmap(); //绘制平铺图像
    (21)drawLineSegments(); //绘制折线

    画笔(QPen)和刷子(QBrush)

    画笔QPen:

    QPen类定义了QPainter如何绘制线条和形状的轮廓。
    1、画笔具有:样式style()、宽度width()、画刷brush()、笔帽样式capStyle()和连接样式joinStyle()等属性。
    2、画笔的样式style()定义了线的样式。
    3、画刷brush()用于填充画笔所绘制的线条。
    4、笔帽样式capStyle()定义了使用QPainter绘制的线的末端;连接样式joinStyle()则定义了两条线如何连接起来。
    5、画笔宽度width()或widthF()定义了画笔的宽。(PS:不存在宽度为0的线。)假设你设置width为0, QPainter依然会绘制出一条线,而这个线的宽度为1像素。也就是说画笔宽度通常至少是1像素。

    刷子(QBrush)

    QBrush类定义了由QPainter绘制的形状的填充模式。
    1、一个画刷具有样式(style)、颜色(color)、渐变(gradient)、文理(texture )四个可设置属性。
    2、可能用到Brush的样式、颜色、填充方式(后两者是重点)
    3、const QColor &QBrush::color() const 获取当前Brush颜色
    4、void QBrush::setColor(const QColor &color) 设置当前Brush颜色

    ConstantValueDescription
    Qt::white3White(#ffffff)
    Qt::black2Black (#000000)
    Qt:: red7Red (#ff0000)
    Qt:: darkRed13Dark red (#800000)
    Qt: :green8Green (#00ff00)
    Qt:: darkGreen14Dark green (#008000)
    Qt::blue9Blue (#0000ff)
    Qt:: darkBlue15Dark blue (#000080)

    渐变(gradient )定义了渐变填充。当创建Qbrush时,可以在构造函数中传入一个渐变画笔对象用于构建画刷的渐变样式

  • 相关阅读:
    UITableView的学习笔记
    [附源码]计算机毕业设计汽车租赁管理系统Springboot程序
    【Linux】 - Linux中的重定向和管道符
    python实用脚本(三)—— 通过有道智云API实现翻译
    node socket.io
    selenium 组合键操作
    Java List 过滤重复数据
    Python 实训教学,更便捷的学生邀请及内容分发|ModelWhale 版本更新
    vue面试题汇总
    Re29:读论文 D2GCLF: Document-to-Graph Classifier for Legal Document Classification
  • 原文地址:https://blog.csdn.net/weixin_45357007/article/details/125438791