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 - QDialog,QWidget实现模态及非模态(模态Widget不能有父窗口,如果设置无边框就不能阻塞父窗口,但是可以强行设置指定Qt::Dialog,还可以setAttribute(Qt:
Qt 之 设置窗口边框的圆角(使用QSS和PaintEvent两种方法)