当前位置:网站首页>QT实现圆角窗口
QT实现圆角窗口
2022-07-06 09:28:00 【Larry_Yanan】
用QT做界面开发的时候,时不时会有一些比较刁难人的样式要求,比如你需要将一个独立窗口,设置成圆角样式。
//UI文件中,对最外层窗口的样式设置
#ChooseUsbCamera{ //类名
background-color: rgb(255, 255, 255); //背景颜色(白色)
border-radius: 10px; //四角圆角的直径
border-style:solid; //边框样式(实线)
border-width:2px; //边框宽度
border-color:rgb(213, 213, 213); //边框颜色
}
这样,就简单做出一个圆角并且带有边框的界面效果,比较的美观。
然而那么问题来了,虽然设置成圆角之后,但四个顶角的透明化无法实现,这自然而然会在窗口初始化的时候加入透明化的代码:
setAttribute(Qt::WA_TranslucentBackground);
但是却变成窗口背景的完全透明化,即便你设置了背景相关的样式
这可能是因为透明化的设置,覆盖掉了我们自定义的样式。这个时候则需要重载paintEvent事件,重新刷图
void ChooseUsbCamera::paintEvent(QPaintEvent *event)
{
QStyleOption opt;
opt.init(this);
QPainter painter(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this);
}
于是,终于实现了这个简单但令人头疼的圆角窗口效果:
可以看到,它的四个角是透明的,实现了圆角的效果。而且还有一点点灰色的边框效果,虽然不是很明显hh。
其实如果你是窗口内的部件,用同样的方法设置样式,或者直接填充带有透明度的图片,是不需要这么麻烦的。但顶层的窗口设置起来往往就不行,研究了半天还走了不少弯路hh,所以特意记录一下。
边栏推荐
- C basic grammar
- Interesting drink
- (POJ - 3685) matrix (two sets and two parts)
- 对iptables进行常规操作
- Opencv learning log 30 -- histogram equalization
- What is the difficulty of programming?
- Pyside6 signal, slot
- 【练习-5】(Uva 839)Not so Mobile(天平)
- Gartner: five suggestions on best practices for zero trust network access
- Sword finger offer II 019 Delete at most one character to get a palindrome
猜你喜欢
Openwrt source code generation image
b站 实时弹幕和历史弹幕 Protobuf 格式解析
Penetration test 2 --- XSS, CSRF, file upload, file inclusion, deserialization vulnerability
分享一个在树莓派运行dash应用的实例。
滲透測試 ( 1 ) --- 必備 工具、導航
window11 conda安装pytorch过程中遇到的一些问题
【高老师软件需求分析】20级云班课习题答案合集
[teacher Gao UML software modeling foundation] collection of exercises and answers for level 20 cloud class
[analysis of teacher Gao's software needs] collection of exercises and answers for level 20 cloud class
“鬼鬼祟祟的”新小行星将在本周安全掠过地球:如何观看
随机推荐
【练习-1】(Uva 673) Parentheses Balance/平衡的括号 (栈stack)
Information security - security professional name | CVE | rce | POC | Vul | 0day
信息安全-威胁检测-flink广播流BroadcastState双流合并应用在过滤安全日志
滲透測試 ( 1 ) --- 必備 工具、導航
Penetration test 2 --- XSS, CSRF, file upload, file inclusion, deserialization vulnerability
MySQL grants the user the operation permission of the specified content
[exercise-3] (UVA 442) matrix chain multiplication
PySide6 信号、槽
MySQL授予用户指定内容的操作权限
Hdu-6025-prime sequence (girls' competition)
【练习-4】(Uva 11988)Broken Keyboard(破损的键盘) ==(链表)
Find 3-friendly Integers
“鬼鬼祟祟的”新小行星将在本周安全掠过地球:如何观看
409. Longest palindrome
【练习-7】(Uva 10976)Fractions Again?!(分数拆分)
Gartner:关于零信任网络访问最佳实践的五个建议
Opencv learning log 29 -- gamma correction
Opencv learning log 28 -- detect the red cup cover
Auto.js入门
Nodejs crawler