(1)2D绘图详解(QPainter)

一、Qt绘制事件
当应用程序收到绘制事件时,就会调用QWidget::paintEvent(),该函数就是绘制窗口的地方。
有两种方法要求重绘一个窗口
1.update() --把重绘事件添加到事件队列中

  • 重复调用update()会被Qt合并为一次
  • 不会产生图像的闪烁
  • 可带参数指定重绘某个区域

2.repaint() --立即产生绘制事件
一般情况下不推荐使用此方法
只使用在需要立即重绘的特效情况下
可带参数指定重绘某个区域

基本绘制

  • QPainter类提供绘制操作,其构造函数原型为:
QPainter(QPaintDevice *device);
  • QPaintDevice代表绘制2D图像的画布;
  • 如下继承QPaintDevice的类对象都可用于QPainter绘制
QWidget、QImage、QPixmap、QPicture、QPrinter、QSvgGenerator、
QGLPixelBuffer、QGLFrameBufferObject

二、Qt 2D绘图
QPainter

  1. 线和轮廓都可以用 画笔(QPen) 进行绘制,用 画刷(QBrush) 进行填充;
  2. 字体使用QFont类定义,当绘制文字时,Qt使用指定字体的属性,如果没有匹配的字体,Qt将使用最接近的字体;
  3. 通常情况下,QPainter以默认的坐标系统进行绘制,也可以用QMatrix类对坐标进行变换;
  4. 当绘制是,可以使用QPainter::RenderHint来告诉绘图引擎是否弃用反锯齿功能使图变得平滑;
  5. QPainter::RenderHint的可取值:
    QPainter::Antialiasing:告诉绘图引擎应该在可能的情况下进行边的反锯齿绘制
    QPainter::TextAntialiasing:尽可能的情况下文字的反锯齿绘制
    QPainter::SmoothPixmapTransform:使用平滑的pixmap变换算法(双线性插值算法),而不是近邻插值算法;

QPainter的绘图函数总结如下:

函数 功能 函数 功能
drawArc() drawPixmap() QPixmap表示的图像
drawChord() drawPoint()
drawConvexPolygon() 凸多边形 drawPoints() 多个点
drawEllipse() 椭圆 drawPolygon 多边形
drawImage() QImage表示的图像 drawPolyline() 多折线
drawLine() 线 drawRect() 矩形
drawLines() 多条线 drawRects() 多个矩形
drawPath() 路径 drawRoundRect() 圆角矩形
drawPicture() 按QPainter指令绘制 drawText() 文字
drawPie 扇形 drawTiledPixmap() 平铺图像
    drawLineSegments()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值