我正在尝试将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());设置

我究竟做错了什么?

最佳答案

设置渐变坐标模式。如果需要垂直渐变,则可能还需要在构造函数中设置渐变的起点和终点。

QLinearGradient grad(QPointF(0, 0), QPointF(0, 1));
grad.setCoordinateMode(QGradient::ObjectBoundingMode);
grad.setColorAt(0, pal.text().color());
grad.setColorAt(1, pal.window().color());

09-06 04:06