Qt如何设置窗口周围的阴影

时间:2015-07-24 05:43:26

标签: qt

我需要在我的mainWindow周围显示阴影,我无法设置我的mainWindow WA_TranslucentBackground,因为我需要显示视频,任何设置QMainWindow阴影而不透明的想法?

1 个答案:

答案 0 :(得分:1)

你需要

  1. 创建顶级QWidget
  2. 让它变得半透明和无框架
  3. setWindowFlags(Qt::FramelessWindowHint);    
    setAttribute(Qt::WA_TranslucentBackground);
    
    1. 将您的MainWindow插入已创建的小部件。留下一些阴影边缘(约5-15 px)
    2. QGraphicsDropShadowEffect添加到MainWindow
    3. QGraphicsDropShadowEffect *wndShadow = new QGraphicsDropShadowEffect;
      wndShadow->setBlurRadius(9.0);
      wndShadow->setColor(QColor(0, 0, 0, 160));
      wndShadow->setOffset(4.0);
      mainWindow->setGraphicsEffect(wndShadow);
      

      看起来像: enter image description here