具有多种颜色背景的 QPalette
Posted
技术标签:
【中文标题】具有多种颜色背景的 QPalette【英文标题】:QPalette with multiple color background 【发布时间】:2014-03-28 12:04:44 【问题描述】:我知道我们可以使用 QPalette 来设置 QLabel 的背景。但是我可以用 QPalette 绘制多色背景吗?例如,上半部分为黑色,下半部分为蓝色。 我找不到 setRect() 函数 QPalette。或者我应该使用其他类?还是我必须用画家画背景?
【问题讨论】:
也许你可以继承 QLabel 并覆盖 paintEvent() 函数? @vahancho 你好!谢谢你的评论。我在paintevent() 中添加了一个drawRect。我想我误解了 QPalette 的使用。 在调色板中,您可以设置QBrush
和QPixmap
,将用作图块。如果图像足够大,您可以达到预期的效果。自定义油漆可让您更好地控制最终结果。
【参考方案1】:
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);
【讨论】:
感谢您的回答。 QGradient 比我预期的要丰富。以上是关于具有多种颜色背景的 QPalette的主要内容,如果未能解决你的问题,请参考以下文章