当前位置: 首页 > news >正文

Qt客户端技巧 -- 窗口美化 -- 窗口阴影

不解析,直接给示例

窗口设为不边框且背景透明,好用来承载阴影
窗口一个Widget用来作真实窗口的作用,在真实窗口上加上阴影特效

上下两层Widget方式

main.cpp

#include <QtCore/qglobal.h>
#if QT_VERSION >= 0x050000
#include <QtWidgets/QApplication>
#else
#include <QtGui/QApplication>
#endif#include "shadowwindow.h"int main(int argc, char *argv[])
{QApplication a(argc, argv);ShadowWindow wnd{};wnd.init();return a.exec();
}

shadowwindow.h

#ifndef SHADOWWINDOW_H
#define SHADOWWINDOW_H#include <QtCore/QObject>
#include <QtCore/qglobal.h>
#if QT_VERSION >= 0x050000
#include <QtWidgets/QWidget>
#else
#include <QtGui/QWidget>
#endif#include <QGraphicsDropShadowEffect>class ShadowWindow : public QWidget
{Q_OBJECT
public:explicit ShadowWindow(QWidget *parent = nullptr);virtual void init();protected:QWidget* realWnd;QGraphicsDropShadowEffect *shadowEffect;signals:
};#endif // SHADOWWINDOW_H

shadowwindow.cpp

#include "shadowwindow.h"ShadowWindow::ShadowWindow(QWidget *parent): QWidget{parent}, realWnd{new QWidget{this}},shadowEffect{new QGraphicsDropShadowEffect{this}} {/* setAttribute 与 setWindowFlag 最好在构造函数里面调用,不然出现未知错误  */this->setAttribute(Qt::WA_TranslucentBackground, true);this->setWindowFlag(Qt::FramelessWindowHint);this->resize(400, 300);this->show();
}void ShadowWindow::init() {const int pWidth = this->width();const int pHeight = this->height();const int shadowOffsetX = 5;const int shadowOffsetY = 5;realWnd->move(0, 0);realWnd->resize(pWidth - shadowOffsetX, pHeight - shadowOffsetY);realWnd->setStyleSheet("background-color:\"#aacc00\";");realWnd->show();shadowEffect->setOffset(shadowOffsetX, shadowOffsetY);shadowEffect->setBlurRadius(20);shadowEffect->setColor(QColor("#cccccc"));realWnd->setGraphicsEffect(shadowEffect);
}

相关文章:

  • Truffle 和 Ganache 使用指南
  • 龙石数据中台V3.5.1升级 | 数据实时收集来了!
  • 使用VuePress2.X构建个人知识博客,并且用个人域名部署到GitHub Pages中
  • 从入门到进阶:Python 学习参考书的深度解析
  • 全面理解 Linux 内核性能问题:分类、实战与调优策略
  • MySQL基本操作
  • 山洪径流过程及洪水淹没数值模拟
  • [Java恶补day17] 41. 缺失的第一个正数
  • Meta Prompting 完整指南
  • 1.3 编译程序:单个C文件和多个C文件
  • 编译构建C++程序时ABI一致性问题
  • Java设计模式之状态模式详解
  • Unity基础-数学向量
  • NY118NY120美光固态闪存NY124NY129
  • 高股息打底+政策催化增强+永续经营兜底
  • 每日算法 -【Swift 算法】电话号码字母组合
  • CSS6404L 在物联网设备中的应用优势:低功耗高可靠的存储革新与竞品对比
  • 本机无法远程别的计算机的方法
  • MySQL查询语句(续)
  • C++.OpenGL (1/64) 创建窗口(Hello Window)
  • 百度收录网站但首页快照不更新/时事新闻最新
  • 南通网站制作外包/凤凰网台湾资讯
  • 代理服务器地址怎么设置/百度关键词优化多久上首页
  • 自己怎么建设网站/苏州搜索引擎优化
  • 网站的360度全景图片怎么做/热点事件
  • 永久免费建网站/aso关键词覆盖优化