#include "shadowwidget.h" #include #include #include ShadowWidget::ShadowWidget(QWidget *parent) : QWidget(parent) , m_pCentralWidget(new QWidget(this)) { setWindowFlags(Qt::FramelessWindowHint); setAttribute(Qt::WA_TranslucentBackground); QHBoxLayout* pLayout = new QHBoxLayout(); if (nullptr != pLayout) { pLayout->addWidget(m_pCentralWidget); this->setLayout(pLayout); } QGraphicsDropShadowEffect *pShadowEffect = new QGraphicsDropShadowEffect(this); pShadowEffect->setBlurRadius(16); // 模糊度 pShadowEffect->setColor(QColor(0, 0, 0, 90)); // 阴影的颜色 pShadowEffect->setOffset(0, 0); // 水平和垂直偏移量 m_pCentralWidget->setGraphicsEffect(pShadowEffect); } void ShadowWidget::setCentralLayout(QLayout *layout) { if (nullptr != m_pCentralWidget) { m_pCentralWidget->setLayout(layout); } } QLayout* ShadowWidget::getLayout() const { if (nullptr != m_pCentralWidget) { return m_pCentralWidget->layout(); } return nullptr; }