0

Qt4のQMdiAreaウィジェットの背景QBrushをシステムカラーのグラデーションに設定しようとしています。

これが私が今持っているいくつかのコードです:

QPrios::QPrios(int &argc, char **argv): QApplication(argc, argv)
{
        // ... 
        QPalette pal = this->palette();
        QLinearGradient grad;
        grad.setColorAt(0, pal.text().color());
        grad.setColorAt(1, pal.window().color());
        _mdi->setBackground(QBrush(grad));
        // ...
}

何が起こるかというと、背景は単色になります。grad.setColorAt(1, pal.window().color());

私は何が間違っているのですか?

4

1 に答える 1

3

グラデーションの座標モードを設定します。垂直方向のグラデーションが必要な場合は、コンストラクターでグラデーションの開始点と終了点を設定することもできます。

QLinearGradient grad(QPointF(0, 0), QPointF(0, 1));
grad.setCoordinateMode(QGradient::ObjectBoundingMode);
grad.setColorAt(0, pal.text().color());
grad.setColorAt(1, pal.window().color());
于 2011-09-16T17:12:33.227 に答える