Qt商业级无边框窗口实现源码(windowsmsvc)

Posted 逆枫゛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt商业级无边框窗口实现源码(windowsmsvc)相关的知识,希望对你有一定的参考价值。

1,简介


之前发布过几篇关于Qt实现无边框窗口的文章,当时在网上苦苦搜寻了很久,也没有好用的,总缺点意思。

哪怕最后找到的一个知名博主的实现,虽然看着效果可以,但是我由于在项目里重度使用,也测出了一些缺陷。比如拖拽的最大化、还原功能,比如拖拽到屏幕角落的1/4屏幕效果。

后来在与一个技术大牛的合作下,实现的一版非常接近于windows原生效果的无边框窗口代码。完美实现了基本能想到的所有功能。成功让一个Qt无边框窗口,能具有和普通windows窗口几乎完全一样的操作效果!

 

2,效果


(1)移动、4边4角缩放:

 

(2)双击标题栏最大化/还原、最大化时拖动还原:

 

(3)拖到屏幕边缘的最大化、半屏、1/4屏显示:

 

完美支持下列特性:

1,标题栏拖动窗口、双击最大还原

2,拖动4个边框和4个角的对应缩放效果

3,完美支持拖动窗口全屏(拖到顶部)、半屏(拖到两侧)、1/4屏(拖到顶点)效果

4,边框阴影

 

使用了两年了,期间修复了点细节bug,如今基本稳定。

 

3,源码下载


下载演示程序:

https://pan.baidu.com/s/1EAzdZCYPKvhAVUGEh5F3Eg?pwd=zjbg
提取码:zjbg

 

下载源码:https://mbd.pub/o/bread/ZJeTm5tt

(注意:本实现仅支持windows平台,MSVC编译版本!!!)

 

以上是关于Qt商业级无边框窗口实现源码(windowsmsvc)的主要内容,如果未能解决你的问题,请参考以下文章

qt里面怎么设置窗口大小改变不触发update

Qt - QDialog,QWidget实现模态及非模态(模态Widget不能有父窗口,如果设置无边框就不能阻塞父窗口,但是可以强行设置指定Qt::Dialog,还可以setAttribute(Qt:

Qt之自定义布局管理器(QBorderLayout)

Qt 之 设置窗口边框的圆角(使用QSS和PaintEvent两种方法)

Qt自定义界面边框后,移动鼠标拖动界面,界面会拖到任务栏以下。。。如何解决?

Qt / PyQt 简易毛玻璃效果