前面就窗口阴影已经写过一篇博客,使用九宫格的思路实现的,在我看来,凡是用程序能实现的尽量不要使用图片代替(在保证效率的前提下),今天再次分享关于我的一些小见解!

    先看效果:
 

    窗口阴影任意调节,包括阴影像素、是否圆角等。
    直接上代码:

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)。保证不被绘制上的部分透明,关于这行代码有些副作用,比如:最小化后窗体子组件失去焦点等问题。当然,也许是我没搞明白,还有待高见!

最新文章

  1. 手把手教你玩转nginx负载均衡(五)----配置后端服务器组
  2. 在 CentOS 里安装 BIND-UTILS 以使用 DIG、HOST 和 NSLOOKUP
  3. 精彩,sinox.org官网贴满winxp死亡大字报
  4. jQuery Validate验证框架使用
  5. 排列组合函数next_permutation()
  6. POJ Find The Multiple 1426 (搜索)
  7. oracle数据库对date字段类型存在空值进行排序的处理方法
  8. IceMx.Mvc
  9. Tomcat配置与优化(内存、并发、管理)与性能监控
  10. 花十分钟,让你变成AI产品经理
  11. 关于QT中.pro文件中的相对路径
  12. windbg分析net程序内存泄漏问题
  13. Linux USB驱动框架分析 【转】
  14. PHP MySQL -处理语句
  15. Project Tango Explorer
  16. 算法之水仙花数(Java语言)
  17. HDU 1165 公式推导题
  18. Adding Completion to (interactive)
  19. Backup--完整备份会打破现有的日志备份链么?
  20. linux命令学习笔记(33):df 命令

热门文章

  1. 了解SQL注入攻击
  2. Radar Installation(贪心,可以转化为今年暑假不ac类型)
  3. [Exception] 当前 TransactionScope 已完成
  4. 武道释义 &amp;#183; 零散
  5. Hacker(五)----黑客专用通道---&gt;端口
  6. onvif规范的实现:使用gSOAP创建SOAP调用实例
  7. asp.net中Repeart选中整行操作
  8. Springmvc和velocity使用的公用后台分页
  9. Jquery 工具类函数
  10. 归并排序java