Qt 2D繪圖 漸變填充(三種漸變方式)


在qt中提供了三種漸變方式,分別是線性漸變,圓形漸變和圓錐漸變。如果能熟練應用它們,就能設計出炫目的填充效果。


線性漸變:

1.更改函數如下:

void Dialog::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QLinearGradient linearGradient(100,150,300,150);
    //從點(100,150)開始到點(300,150)結束,確定一條直線
    linearGradient.setColorAt(0,Qt::red);
    linearGradient.setColorAt(0.2,Qt::black);
    linearGradient.setColorAt(0.4,Qt::yellow);
    linearGradient.setColorAt(0.6,Qt::white);
    linearGradient.setColorAt(0.8,Qt::green);
    linearGradient.setColorAt(1,Qt::blue);
    //將直線開始點設為0,終點設為1,然后分段設置顏色
    painter.setBrush(linearGradient);
    painter.drawRect(100,100,200,100);
    //繪制矩形,線性漸變線正好在矩形的水平中心線上
}

效果如下:

圓形漸變:

1.更改函數內容如下:

   QRadialGradient radialGradient(200,100,100,200,100);
   //其中參數分別為圓形漸變的圓心(200,100),半徑100,和焦點(200,100)
    //這里讓焦點和圓心重合,從而形成從圓心向外漸變的效果
    radialGradient.setColorAt(0,Qt::black);
    radialGradient.setColorAt(1,Qt::yellow);
    //漸變從焦點向整個圓進行,焦點為起始點0,圓的邊界為1
    QPainter painter(this);
    painter.setBrush(radialGradient);
    painter.drawEllipse(100,0,200,200);
   //繪制圓,讓它正好和上面的圓形漸變的圓重合

效果如下:

2.要想改變填充的效果,只需要改變焦點的位置和漸變的顏色位置即可。

改變焦點位置:QRadialGradient radialGradient(200,100,100,100,100);

效果如下:

錐形漸變:

1.更改函數內容如下:

//圓錐漸變
    QConicalGradient conicalGradient(50,50,0);
    //圓心為(50,50),開始角度為0
    conicalGradient.setColorAt(0,Qt::green);
    conicalGradient.setColorAt(1,Qt::white);
   //從圓心的0度角開始逆時針填充
    QPainter painter(this);
    painter.setBrush(conicalGradient);
    painter.drawEllipse(0,0,100,100);

效果如下:

2.可以更改開始角度,來改變填充效果

QConicalGradient conicalGradient(50,50,30);

開始角度設置為30度,效果如下:

其實三種漸變的設置都在於焦點和漸變顏色的位置,如果想設計出漂亮的漸變效果,還要有美術功底啊!

 

http://www.cnblogs.com/bingcaihuang/archive/2010/12/01/1893522.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM