From ea8e182a25ec565f6fc8e20340d72f33c273d211 Mon Sep 17 00:00:00 2001 From: zcy <290198252@qq.com> Date: Mon, 12 Jul 2021 23:31:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=81=AE=E7=BD=A9=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 2 ++ Qss.cpp | 54 ++++++++++++++++++++++++++++++++++++++++++-------- Qss.h | 12 +++++++++++ 3 files changed, 60 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 358200b..429a88e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,5 +17,7 @@ set(QsswraperHeader "${CMAKE_CURRENT_LIST_DIR}/Qss.h") list(APPEND HEADERS ${QsswraperHeader}) message("qss wraper add include dir " ${CMAKE_CURRENT_LIST_DIR}) +message("qss wraper add source " ${QsswraperSource}) + include_directories(${CMAKE_CURRENT_LIST_DIR}) diff --git a/Qss.cpp b/Qss.cpp index 6654d39..41dea73 100644 --- a/Qss.cpp +++ b/Qss.cpp @@ -285,14 +285,9 @@ QssMainWindow::QssMainWindow(QWidget *parent/* = 0*/, Qt::WindowFlags flags/* = qDebug()<setStyleSheet(css); - -// QGraphicsDropShadowEffect *shadow_effect = new QGraphicsDropShadowEffect(m_frame); -// shadow_effect->setOffset(0, 0); -// //阴影颜色 -// shadow_effect->setColor(QColor(38, 78, 119, 127)); -// //阴影半径 -// shadow_effect->setBlurRadius(15); -// m_frame->setGraphicsEffect(shadow_effect); + mShadowMask = new QWidget(this); + mShadowMask->setStyleSheet("QWidget{background-color:rgba(1,1,1,0.3);}"); + mShadowMask->hide(); return; } @@ -307,6 +302,17 @@ QWidget *QssMainWindow::TitleBar() return m_titleBar; } +void QssMainWindow::ShowMask() +{ + mShadowMask->setGeometry(0, 0, this->width(),this->height()); //遮罩窗口位置 + mShadowMask->show(); +} + +void QssMainWindow::HideMask() +{ + mShadowMask->hide(); +} + void QssMainWindow::show() { m_frame->show(); @@ -685,6 +691,11 @@ QssDialog::QssDialog(QWidget *parent) vbox->addWidget(this); installEventFilter(this); + + mShadowMask = new QWidget(this); + mShadowMask->setStyleSheet("QWidget{background-color:rgba(1,1,1,0.3);}"); + mShadowMask->hide(); + } QssDialog::~QssDialog() @@ -692,6 +703,17 @@ QssDialog::~QssDialog() m_frame->deleteLater(); } +void QssDialog::ShowMask() +{ + mShadowMask->setGeometry(0, 0, this->width(),this->height()); //遮罩窗口位置 + mShadowMask->show(); +} + +void QssDialog::HideMask() +{ + mShadowMask->hide(); +} + void QssDialog::show() { /** resize m_framem_framesizehint */ @@ -1417,6 +1439,22 @@ QssDockWidget::QssDockWidget(QWidget *parent) installEventFilter(this); this->setStyleSheet(QString("{background: rgb(232, 241, 252);""color: black;border: 1px solid rgb(111, 156, 207);}")); + + + mShadowMask = new QWidget(this); + mShadowMask->setStyleSheet("QWidget{background-color:rgba(1,1,1,0.3);}"); + mShadowMask->hide(); +} + +void QssDockWidget::ShowMask() +{ + mShadowMask->setGeometry(0, 0, this->width(),this->height()); //遮罩窗口位置 + mShadowMask->show(); +} + +void QssDockWidget::HideMask() +{ + mShadowMask->hide(); } QssDockWidget::~QssDockWidget() diff --git a/Qss.h b/Qss.h index 03ac169..6489ae0 100644 --- a/Qss.h +++ b/Qss.h @@ -219,6 +219,8 @@ public: virtual ~QssMainWindow(); QWidget *TitleBar(); + void ShowMask(); + void HideMask(); void show(); void showMinimized(); void showMaximized(); @@ -264,6 +266,8 @@ private: QRect m_rtPreGeometry; QPoint m_ptViewMousePos; float m_scale; + QWidget *mShadowMask; + }; class QssDialog : public QDialog @@ -274,6 +278,9 @@ public: QssDialog(QWidget *parent); virtual ~QssDialog(); + void ShowMask(); + void HideMask(); + void show(); void raise(); void activateWindow(); @@ -306,6 +313,7 @@ private: QPoint m_pos; bool m_mousePressedInBorder; bool m_left,m_right,m_top,m_bottom; + QWidget *mShadowMask; }; @@ -317,6 +325,9 @@ class QssDockWidget : public QDockWidget public: QssDockWidget(QWidget *parent); + + void ShowMask(); + void HideMask(); virtual ~QssDockWidget(); void show(); @@ -350,6 +361,7 @@ private: QPoint m_pos; bool m_mousePressedInBorder; bool m_left,m_right,m_top,m_bottom; + QWidget *mShadowMask; };