给QT不规则窗口添加阴影】的更多相关文章

在家休息,试着用QT去模仿各类管家软件的界面,做到自绘阴影的时候,蛋疼了. 网上搜到的基本都是一篇文章转来转去,一开始也被思路限制了. 尝试重载paintEvent,然后自己绘制矩形阴影,但是绘制的算法始终觉得有问题,最后发现 QGraphicsDropShadowEffect 这个一个好东西,虽说网上有提到,但是基本都是用它来绘制子控件阴影,所以我好奇,为什么不直接放个QFrame在窗口中间,四边留出阴影位置,主窗口背景设置为透明,Qfram设置阴影效果不就OK了? 说干就干,代码摘要如下:…
前言 在之前的博客<如何在pyqt中通过调用SetWindowCompositionAttribute实现Win10亚克力效果>中,我们实现了窗口的亚克力效果,同时也用SetWindowCompositionAttribute() 给亚克力窗口加上了阴影.但是更多时候我们用不到亚克力效果,但又需要给无边框窗口加上阴影.一种方法是在当前窗口外嵌套一层窗口,然后用 QGraphicsDropShadowEffect 给里面的窗口加上阴影,还有一种就是重写 paintEvent()来绘制阴影.下面来…
QT实现的不规则窗口,是根据图片的形状显示 1.去标题栏 2.设置窗口背景为透明色 3.最后给窗口设置背景色 注:背景图为镂空的 格式为.png 图片资源下载:http://pan.baidu.com/s/1i5JkIot .h #ifndef QANORMALYDLG_H #define QANORMALYDLG_H #include <QWidget> #include "ui_qanormalydlg.h" class QAnormalyDlg : public QW…
Qt项目在打包发布之后都需要有个个性的程序图标和窗口图标,这样会使程序更加美观大方,下面我们分别来看如何给程序和窗口分别添加图标.我们需要两种格式的图片,一种是.ico的,用来给程序添加图标,一种是.bmp或是.png的,用来给窗口添加图标. - 程序添加图标 如果使用的Qt Creator,那么用记事本创建一个后缀为.rc的资源文件,然后再其中添加: IDI_ICON1 ICON DISCARDABLE "xxx.ico" 注:xxx.ico为图标文件名称 然后修改工程文件(*.pr…
方法一: 代码实现 在窗口构造函数中加入:setAttribute(Qt::WA_TranslucentBackground),保证不被绘制上的部分透明 重写void paintEvent(QPaintEvent *event); void QT_Test::paintEvent(QPaintEvent *event) { QPainterPath path; path.setFillRule(Qt::WindingFill); path.addRect(, , , ); QPainter pa…
主要思路:1:将窗体设为Qt::FramelessWindowHint(去掉标题栏).2:用一幅有部分区域是透明的图片作为程序的界面,并将图片透明的地方设为穿透. 3:重载程序的鼠标事件. 运行时截图(浅绿色的是桌面背景) 源代码: #include <QtGui> class IrregularWidget : public QWidget { Q_OBJECT public: IrregularWidget(QWidget *parent = 0); protected: void mou…
利用SetClassLong函数给nsis窗口添加了阴影,看起来很酷^_^ System::Call `user32::SetClassLong(i$HWNDPARENT,i${GCL_STYLE},i${CS_DROPSHADOW})` SetClassLong Replaces the specified 32-bit (long) value at the specified offset into the extra class memory or the WNDCLASSEX stru…
之前写过如何用 Qt 现成的方法写出无边框半透明的不规则窗体:<Qt 不规则窗体 – 无边框半透明> 其实有一个很特殊的窗体属性一直以来都伴随着不规则窗体出现,这就是本文要介绍的鼠标点击穿透.鼠标点击穿透被广泛应用在桌面挂件程序上,目的是为了避免鼠标对窗体进行误操作. Qt 并没有自带的方法可以实现该功能,所以需要调用系统本身的 API 来实现.这里介绍下 Windows 下和 Linux 下如何实现鼠标点击穿透. Windows API : SetWindowLong SetWindowLo…
Skin(表皮) 是制作比较酷的软件界面的有利工具. 一个软件可以同时使用多种Skin 以取得不同的外观, 使同一个软件有截然不同的风格. 用户可以根据自己的喜好选择 不同的风格. 本节介绍使用 Qt 制作 Skin 的方法. 软件界面的风格变化可以通过两种机制完成,一种是通过设置主题(Themes),它使用 界面库本身所具有的对界面组件(Components)的控制能力切换显示风格:另外一种是 通过提供不同系列的图片来切换显示界面,即这里所讲的 Skin. 制作表皮有几个重要的因素值得考虑:…
最近手头上的项目终于忙得差不多了,想起好久没有更新了的NanUI,再看着每天QQ群未读消息闪烁的标志,突然才发现似乎愧对了群里各位喜爱NanUI的朋友们.于是乎,就想趁这几天有时间,好好的修复一下NanUI已知的BUG,再用有限的时间推进整个项目的进度. 在复习代码的时候,想起了群里有朋友提出说NanUI的窗口的几个问题: 在某些Win7环境下会出现窗口标题绘制错误: Win8下面窗口阴影没有问题 模拟绘制的影子拖动窗口改变大小时绘制缓慢资源占用大 原来NanUI呈现窗口的方式有两种,一种是使用…