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 回答