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画到窗体




 



免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM