当前位置:   article > 正文

Qt无边框窗口添加阴影_qt 设置qt::framelesswindowhint | qt::windowminmaxbut

qt 设置qt::framelesswindowhint | qt::windowminmaxbuttonshint 窗口阴影

无边框窗口添加阴影需要两个窗口,第一个顶层窗口用于显示控件的,第二个是底层窗口用于承载顶层窗口并显示边框阴影。也就是说把底层窗口设置为透明只显示边框阴影,再将顶层窗口放上去形成了有阴影的无边框窗口。

  1. #include <QGraphicsDropShadowEffect>
  2. #include <QVboxLayout>
  3. //设置窗体透明
  4. this->setAttribute(Qt::WA_TranslucentBackground, true);
  5. //设置无边框
  6. this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowMinMaxButtonsHint);
  7. QVBoxLayout* pMainLay = new QVBoxLayout(this);
  8. CLoginRealWidget* pRealWidget = new CLoginRealWidget(this);//这是自己定义的顶层的无边框窗口,如何实现无边框窗口参考本系列文章的第一篇
  9. pMainLay->addWidget(pRealWidget);
  10. pMainLay->setContentsMargins(30, 30, 30, 30);
  11. setLayout(pMainLay);
  12. //给顶层widget设置背景颜色,不然看不见,因为底层widget已经透明了
  13. pRealWidget->setStyleSheet("background-color:rgb(255, 254, 253)");
  14. //Qt窗口阴影类
  15. QGraphicsDropShadowEffect* shadow = new QGraphicsDropShadowEffect(this);
  16. //设置阴影距离
  17. shadow->setOffset(0, 0);
  18. //设置阴影颜色 686868
  19. shadow->setColor(QColor("#686868"));
  20. //设置阴影区域
  21. shadow->setBlurRadius(30);
  22. //给顶层QWidget设置阴影
  23. pRealWidget->setGraphicsEffect(shadow);

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/95188
推荐阅读
相关标签
  

闽ICP备14008679号