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