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

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