QPainter 提高绘制效率的方法

北战南征 提交于 2019-12-05 23:33:55

原文: https://my.oschina.net/u/3919756/blog/1944747

如果我们用painter一个一个的绘制直线,圆等在控件上,绘制效率会不高。为了提高效率,我们可以设置一个画布pixmap,将所有的基础图形画布上,然后把画布画在控件上。

#include <QPixmap>
void Widget::paintEvent(QPaintEvent *)
{
    QPixmap pixmap(size());  //将画布的大小设置为和widget一样的
    QPainter painter(&pixmap);  //在画布上常见一个画家
    painter.setBrush(Qt::yellow);
    painter.setPen(QPen(Qt::red, 2, Qt::DashLine));
    painter.drawEllipse(QPoint(95, 333), 50, 50);
    painter.drawText(QPoint(50, 50), "Hello world");
    painter.end();  //画完了
    painter.begin(this);  //在Widget上开始绘制
    painter.drawPixmap(0, 0, pixmap);  //在控件上绘制pixmap图像
    painter.drawLine(QPoint(50, 50), QPoint(60, 10));
}

  

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!