1. 程式人生 > 其它 >QPainter 基礎繪圖的幾種用法

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;
  p.begin(this);
  p.drawLine(...); // drawing code
  p.end();
}

方法三:建立畫布,將其作為引數構造畫家

    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畫到窗體