如何将 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

QMdiArea:第一个选项卡工作正常,第二个选项卡的内容太小

如何在 Flutter 的主小部件中为小部件设置背景颜色?

如何将QWidget的背景放在QGridLayout中的其他小部件下

如何在不影响 Pyqt5 中的小部件的情况下将背景图像添加到主窗口

如何使 QTableWidget 内的单元格小部件的背景不可选?