Qt之QPainter:提升繪製效率的方法

若是咱們用painter一個一個的繪製直線,圓等在控件上,繪製效率會不高。爲了提升效率,咱們能夠設置一個畫布pixmap,將全部的基礎圖形畫布上,而後把畫布畫在控件上。this

#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));
}

相關文章
相關標籤/搜索