QPainter 基础绘图的几种用法

 方法一:无参构造画家时,需要手动调用begin(this)和end() 函数

void MyWidget::paintEvent(QPaintEvent *)

  {
      QPainter p;
      p.begin(this);
      p.drawLine(...);        // drawing code
      p.end();
  }
。。

方法二:有参构造画家时,系统会自动调用begin(this)和end() 函数,可以立即直接使用画家进行绘图。
这个构造函数对于寿命较短的画家很方便,例如在QWidget::paintEvent()中,并且只应该使用一次

   void MyWidget::paintEvent(QPaintEvent *)

  {
      QPainter p(this);

p.drawLine(...); // drawing code
  }

方法三:创建画布,将其作为参数构造画家

 

    QPixmap pix=QPixmap(size());//创建画布
    pix.fill(Qt::white);
    QPainter painter(&pix);//创建画家

.......
//使用画家绘图
p.drawLine(...); // drawing code
    .......

//将pixmap绘制到窗体上
    painter.end();
    painter.begin(this);
    painter.drawPixmap(0,0,pix);//将pixmap画到窗体







posted on 2021-07-01 17:01  斗战胜佛美猴王  阅读(1384)  评论(0)    收藏  举报