Qt之再谈阴影边框
来源:互联网 发布:linux虚拟机 共享文件 编辑:程序博客网 时间:2024/05/12 13:47
今天正好搞一下窗口的阴影,发现一篇文章写的真是不错..
毫不犹豫滴..转过来了..感谢作者分享.
转自:http://blog.sina.com.cn/s/blog_a6fb6cc90101eoop.html
前面就窗口阴影已经写过一篇博客,使用九宫格的思路实现的,在我看来,凡是用程序能实现的尽量不要使用图片代替(在保证效率的前提下),今天再次分享关于我的一些小见解!
窗口阴影任意调节,包括阴影像素、是否圆角等。
void DropShadowWidget::paintEvent(QPaintEvent *event){ QPainterPath path; path.setFillRule(Qt::WindingFill); path.addRect(10, 10, this->width()-20, this->height()-20); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing, true); painter.fillPath(path, QBrush(Qt::white)); QColor color(0, 0, 0, 50); for(int i=0; i<10; i++) { QPainterPath path; path.setFillRule(Qt::WindingFill); path.addRect(10-i, 10-i, this->width()-(10-i)*2, this->height()-(10-i)*2); color.setAlpha(150 - qSqrt(i)*50); painter.setPen(color); painter.drawPath(path); }}
记得加上这行代码:setAttribute(Qt::WA_TranslucentBackground)。保证不被绘制上的部分透明,关于这行代码在一些Qt版本中会有副作用,比如:最小化后窗体子组件失去焦点等问题。具体可以看Qt的这个Bug(Widget with Qt::FramelessWindowHint and Qt::WA_TranslucentBackground stops painting after minimize/restore)。
QGraphicsDropShadowEffect *shadow_effect = new QGraphicsDropShadowEffect(this);
shadow_effect->setOffset(-5, 5);
shadow_effect->setColor(Qt::gray);
shadow_effect->setBlurRadius(8);
network_group_box->setGraphicsEffect(shadow_effect);
效果如下:
0 0
- Qt之再谈阴影边框
- Qt之再谈阴影边框
- Qt之再谈阴影边框
- Qt之再谈阴影边框
- Qt之再谈阴影边框
- Qt之再谈阴影边框
- Qt之阴影边框
- Qt之阴影边框
- Qt之阴影边框
- Qt之阴影边框
- Qt--圆形阴影边框
- QT边框阴影效果
- Qt之再谈窗体阴影
- qt之QWidget阴影边框的代码实现
- QT界面边框带阴影
- Qt/QML 窗口阴影边框实现
- qt 设置阴影 不显示黑色边框
- Qt 通过绘画设置边框阴影
- ngui scrowview bug --- 动态向grid里添加项后没有自动裁剪Cliping
- 韩国IT业是怎么走向国际我们需要学习什么
- CAP理论
- Centos6.5下搭建Tomcat
- 算法之---字符串循环移位
- Qt之再谈阴影边框
- 如何使用 WordPress 的拾色器(Color Picker)API
- eclipse常用功能
- Java集合框架面试问题集锦
- 宝马各系的特点 个人总结
- 1Z0-051 QUESTION 12 别名和INITCAP的运用
- 几个常用的数论算法
- 渐进增强与优雅降级(转)
- MVC非唐突Ajax的使用