QPalette有多种颜色背景

时间:2014-03-28 12:04:44

标签: c++ qt

我知道我们可以使用QPalette设置QLabel的背景。但是我可以用QPalette绘制多色背景吗?例如,上面的一半是黑色,一半是下面的蓝色。 我找不到setRect()函数QPalette。或者我应该使用其他课程?或者我必须用画家画背景?

1 个答案:

答案 0 :(得分:3)

documentation for QGradient类声明: -

  

QGradient类与QBrush结合使用以指定渐变填充

因此,您可以先创建一个渐变并将其设置为QBrush

QLinearGradient linearGrad(QPointF(100, 100), QPointF(100, 200));
linearGrad.setColorAt(0, Qt::black);
linearGrad.setColorAt(0.5, Qt::blue);

您可以尝试在不同的停靠点设置不同的颜色,范围从0.0到1.0

使用渐变创建画笔......

QBrush brush(linearGrad);

documentation for QPalette州: -

  

可以使用setColor()和setBrush()在任何调色板的颜色组中为特定角色设置颜色和画笔。

因此,使用QPalette的setBrush函数,设置使用渐变创建的画笔: -

QPalette palette;
palette->setBrush(QPalette::Window, brush);