我知道我们可以使用QPalette设置QLabel的背景。但是我可以用QPalette绘制多种颜色的背景吗?例如,上方一半为黑色,下方一半为蓝色。
我找不到setRect()函数QPalette。还是应该使用其他类(class)?还是我必须和画家一起绘制背景?

最佳答案

documentation for QGradient类指出:-



因此,您可以先创建一个渐变并将其设置为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指出:-



因此,使用QPalette的setBrush函数,设置使用渐变创建的画笔:-
QPalette palette;
palette->setBrush(QPalette::Window, brush);

关于c++ - QPalette具有多种颜色的背景,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22712343/

10-11 17:18