添加遮罩层

qt6
zcy 2021-07-12 23:31:30 +08:00
parent 7fe003ebd0
commit ea8e182a25
3 changed files with 60 additions and 8 deletions

View File

@ -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})

54
Qss.cpp
View File

@ -285,14 +285,9 @@ QssMainWindow::QssMainWindow(QWidget *parent/* = 0*/, Qt::WindowFlags flags/* =
qDebug()<<css;
m_frame->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()

12
Qss.h
View File

@ -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;
};