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