首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

Qt學習之路(27):漸層填充完全指南 Linear、Radial、Conical Gradient

     編輯:關於C++

漸層讓顏色自然過渡,Qt 提供三種漸層畫刷,皆繼承自 QGradient,用於 QBrush 填充:

  • QLinearGradient:線性漸層,沿直線方向過渡
  • QRadialGradient:輻射漸層,從中心點向外擴散
  • QConicalGradient:角度漸層,圍繞中心點角度變化

線性漸層 QLinearGradient 實作

void PaintedWidget::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing, true);
    
    QLinearGradient linearGradient(60, 50, 200, 200);  // 起點 (60,50) 到終點 (200,200)
    linearGradient.setColorAt(0.2, Qt::white);
    linearGradient.setColorAt(0.6, Qt::green);
    linearGradient.setColorAt(1.0, Qt::black);
    
    painter.setBrush(QBrush(linearGradient));
    painter.drawEllipse(50, 50, 200, 150);
}

setColorAt(qreal position, const QColor &color) 中 position 為 0.0~1.0 區間,對應起點至終點的相對位置。上例在 20% 處白色、60% 綠色、100% 黑色。

漸層筆刷應用於線條

QPen 接受 QBrush 參數,故漸層也能用於描邊:

painter.setPen(QPen(QBrush(linearGradient), 5));  // 寬度 5 像素
painter.drawLine(50, 50, 200, 200);

同理,QRadialGradient 與 QConicalGradient 用法類似,僅建構函式參數不同(中心點、半徑、焦點、角度等)。漸層是豐富視覺效果的關鍵工具,善用可大幅提升介面質感。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved