如何将 QMdiArea 小部件的背景 QBrush 设置为系统颜色渐变?
Posted
技术标签:
【中文标题】如何将 QMdiArea 小部件的背景 QBrush 设置为系统颜色渐变?【英文标题】:How to set the background QBrush of a QMdiArea widget to a gradient of system colors? 【发布时间】:2011-09-16 16:44:36 【问题描述】:我正在尝试将 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());
的那一组
我做错了什么?
【问题讨论】:
【参考方案1】:设置渐变的坐标模式。如果你想要一个垂直渐变,你可能还想在构造函数中设置渐变的起点和终点。
QLinearGradient grad(QPointF(0, 0), QPointF(0, 1));
grad.setCoordinateMode(QGradient::ObjectBoundingMode);
grad.setColorAt(0, pal.text().color());
grad.setColorAt(1, pal.window().color());
【讨论】:
是的,就是这样!非常感谢,我是 Qt 的新手,并且仍然掌握它的窍门。以上是关于如何将 QMdiArea 小部件的背景 QBrush 设置为系统颜色渐变?的主要内容,如果未能解决你的问题,请参考以下文章
QMdiArea:第一个选项卡工作正常,第二个选项卡的内容太小
如何将QWidget的背景放在QGridLayout中的其他小部件下