Qt设置滑动条ScrollArea 背景颜色为透明
需求: 现在在QWidget中文案部分添加了滑动条区域处理,但是滑动条区域又与整个视窗的背景色不协调,由于整个控件背景色为透明,因此需要将滑动条ScrollArea 设置为透明。查询CSDN和百度的方法无果,写的太乱,现将自己的尝试总结如下
1.窗口背景色设置透明方法
setAttribute(Qt::WA_TranslucentBackground, true);
使用条件:Qt窗体设置 透明(可以设置其他背景色)
2.滑动条ScrollArea 背景颜色设置为透明
直接上代码:
QPalette pa = scrollArea->palette();
pa.setBrush(QPalette::Window, Qt::transparent);
scrollArea->setPalette(pa);
其中<1:QPalette类相当于对话框或控件的调色板,它管理着控件或窗体的所有颜色信息,每个窗体或控件都包含一个QPalette对象,在显示时按照它的QPalette对象中对各部分各状态下的颜色的描述来进行绘制。
其中<2: QPalette::Window 一定得这么设置,而非常用的Base
在此推荐2篇有用的博客:
Qt: 调色板QPalette类用法详解(附实例、源码)
仔细去理解一下,有很大的收获!