Qt实现无边框窗口(二)

本例使用纯Qt实现了无边框的窗口,包含了窗口外围的阴影和调整窗口大小的功能,以及最小化、最大化和关闭按钮的功能。本程序在VS2017、Qt5.9下测试通过。期间为了正确响应鼠标消息调试了1~2天,因为在推拽调整窗口大小的时候总是会出漏洞,不过最终还是解决了这些问题。运行效果如下图:

代码已在gitee开源,链接为:QtBorderlessWindow: 用纯Qt5.9实现的无边框窗口 (gitee.com)。此功能的实现原理主要依靠窗口的Qt::WA_TranslucentBackground属性,在Qt帮助中它的说明如下图。大意就是说这个属性会给窗口增加一个Alpha通道,可以在窗口任意地方绘制透明色:

 

posted @ 2024-04-17 11:45  兜尼完  阅读(188)  评论(0编辑  收藏  举报