如何用Qt CQGUI框架实现带阴影圆角的窗口效果?

2026-04-18 22:172阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计389个文字,预计阅读时间需要2分钟。

如何用Qt CQGUI框架实现带阴影圆角的窗口效果?

大伯好,我是IT艺术男,来自一线大厂的程序员工。今天为大家讲解基于C++/Qt的CQGUI框架的阴影圆角窗口接口实现,效果如下所示:

+CQGUI开发环境:Microsoft Visual Studio 2019, Qt 5.15

大家好,我是IT文艺男,来自一线大厂的一线程序员

今天给大家讲解基于C++/Qt的CQGUI框架的阴影圆角窗口实现,实现效果如下图所示::

CQGUI开发环境::

  • Microsoft Visual Studio 2019
  • Qt5.15.1

步骤如下:

一、继承关系

class LoginPanel : public QDialog

二、窗口属性

如何用Qt CQGUI框架实现带阴影圆角的窗口效果?

setAttribute(Qt::WA_TranslucentBackground); //设置顶层面板背景透明 setWindowFlags(Qt::FramelessWindowHint); //设置无边框 setContentsMargins(10, 10, 10, 10);

Qt::WA_TranslucentBackground Indicates that the widget should have a translucent background, i.e., any non-opaque regions of the widgets will be translucent because the widget will have an alpha channel. Setting this flag causes WA_NoSystemBackground to be set. On Windows the widget also needs the Qt::FramelessWindowHint window flag to be set. This flag is set or cleared by the widget's author.

三、设置阴影效果

auto *defaultShadow = new QGraphicsDropShadowEffect(); defaultShadow->setBlurRadius(10.0); defaultShadow->setColor(QColor(0, 0, 0, 160)); defaultShadow->setOffset(0, 0); _loginMainFrm->setGraphicsEffect(defaultShadow);

四、设置样式

QFrame#loginMainFrm>QFrame#leftFrame{ background:rgba(255,255,255,0.9); border-top-left-radius:6px; border-top-right-radius:0px; border-bottom-right-radius:0px; border-bottom-left-radius:6px; }

五、事件响应

protected: void mousePressEvent(QMouseEvent *e) override ; void mouseReleaseEvent(QMouseEvent *e) override ; void mouseMoveEvent(QMouseEvent *e) override ; void closeEvent(QCloseEvent *e) override ; bool event(QEvent* e) override ; protected: bool eventFilter(QObject* o, QEvent* e) override;

到此这篇关于Qt中CQGUI框架之阴影圆角窗口实现的文章就介绍到这了,更多相关CQGUI阴影圆角窗口内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

本文共计389个文字,预计阅读时间需要2分钟。

如何用Qt CQGUI框架实现带阴影圆角的窗口效果?

大伯好,我是IT艺术男,来自一线大厂的程序员工。今天为大家讲解基于C++/Qt的CQGUI框架的阴影圆角窗口接口实现,效果如下所示:

+CQGUI开发环境:Microsoft Visual Studio 2019, Qt 5.15

大家好,我是IT文艺男,来自一线大厂的一线程序员

今天给大家讲解基于C++/Qt的CQGUI框架的阴影圆角窗口实现,实现效果如下图所示::

CQGUI开发环境::

  • Microsoft Visual Studio 2019
  • Qt5.15.1

步骤如下:

一、继承关系

class LoginPanel : public QDialog

二、窗口属性

如何用Qt CQGUI框架实现带阴影圆角的窗口效果?

setAttribute(Qt::WA_TranslucentBackground); //设置顶层面板背景透明 setWindowFlags(Qt::FramelessWindowHint); //设置无边框 setContentsMargins(10, 10, 10, 10);

Qt::WA_TranslucentBackground Indicates that the widget should have a translucent background, i.e., any non-opaque regions of the widgets will be translucent because the widget will have an alpha channel. Setting this flag causes WA_NoSystemBackground to be set. On Windows the widget also needs the Qt::FramelessWindowHint window flag to be set. This flag is set or cleared by the widget's author.

三、设置阴影效果

auto *defaultShadow = new QGraphicsDropShadowEffect(); defaultShadow->setBlurRadius(10.0); defaultShadow->setColor(QColor(0, 0, 0, 160)); defaultShadow->setOffset(0, 0); _loginMainFrm->setGraphicsEffect(defaultShadow);

四、设置样式

QFrame#loginMainFrm>QFrame#leftFrame{ background:rgba(255,255,255,0.9); border-top-left-radius:6px; border-top-right-radius:0px; border-bottom-right-radius:0px; border-bottom-left-radius:6px; }

五、事件响应

protected: void mousePressEvent(QMouseEvent *e) override ; void mouseReleaseEvent(QMouseEvent *e) override ; void mouseMoveEvent(QMouseEvent *e) override ; void closeEvent(QCloseEvent *e) override ; bool event(QEvent* e) override ; protected: bool eventFilter(QObject* o, QEvent* e) override;

到此这篇关于Qt中CQGUI框架之阴影圆角窗口实现的文章就介绍到这了,更多相关CQGUI阴影圆角窗口内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!