一 前言

不知道各位程序员有没有遇到过这样一种困惑,好不容易在开源网站找到了类似的想要的项目代码,结果down下来一编译,我勒个去,几百个错误,根本没法用,熟悉的人还好可以直接阅读代码进行修改(有些只要做小改动就能正常编译,有些可能需要大刀阔斧),可是对于绝大部分的初学者来说绝对是噩梦,连把代码看下去的勇气都没有,我们没有任何权利和理由去责怪开原作者,只是期望各位能够在项目开源的同时,将开源项目完善好、测试好,最起码要把项目中依赖的遗漏的文件一起打包好,或者作出必要的说明,比如对应的开发编译版本要求,以来的文件去哪里下载。很多优秀的项目就毁在这个地方,没人完善和维护(可能因为没有耐心,也没有持续的收入来源,所以干的没劲,作者甚至转行送外卖了)。只有解决了这个痛点才能使得对应的开源项目持续发光发热。

本人自从学习Qt开发以来,开源过至少上百个项目(大部分早期开源的目前不在开源主页,有空会全部整理好重新发布),我要是说在国内Qt界开源的项目数量和质量排第十的话,没人敢说排第一、第二、第三...到第九。关于无边框界面方案,网上也有不少的优秀的开源的例子,99%都存在以下几个问题,针对以上问题,解决这些痛点,借助自己刚好有多个操作系统、几十个Qt版本的开发测试环境,特意完善了这个无边框类。

  • 无法正常编译,缺少文件,作者真粗心,自己都没测试过。
  • 只限定了部分特定的版本才能编译。
  • 只解决了单个问题,比如无边框拖动,没有系统特性拉到左侧右侧半屏、顶部最大化。
  • 代码赶鸭子上架,复制粘贴的一坨坨,毫无章法。
  • 代码就是给作者自己用的,放上去就是给个参考,管他那么多。
  • 往左侧拉动抖动的厉害。
  • mac系统上不能最小化。
  • 不能同时支持win、linux、mac三种主流操作系统。

二 功能特点

  1. 同时支持Qt4-Qt6,亲测Qt4.7到Qt6.1。
  2. 同时支持mingw、msvc、gcc等。
  3. 同时支持windows、linux、mac。
  4. 同时支持QMainWindow、QWidget、QDialog。
  5. 使用方法极其简单,只需要将继承类修改即可。
  6. 自动识别双击标题栏响应。
  7. 无边框拉伸在windows下不抖动。
  8. 在windows下具有移动到边缘半屏、移动到顶部全屏特性。
  9. 解决mac系统上无边框最小化最大化失效的BUG。
  10. 解决系统休眠后再次启动程序懵逼的BUG。
  11. 解决有时候窗体重新显示的时候假死不刷新的BUG。
  12. 轻量级,1个代码文件,核心代码行数不到300行。
  13. 注释详细,示例完美,非常适合阅读和学习。
  14. 开源开箱即用,保证任意Qt版本可正常编译运行,无需任何调整。

三 效果图

1 windows

2 ubuntu

3 uos

4 kylin

5 mac

四 特别说明

  1. 点赞、评论、留言、转发、发代码。
  2. 国内站点:https://gitee.com/feiyangqingyun/QWidgetDemo
  3. 国际站点:https://github.com/feiyangqingyun/QWidgetDemo

Qt开源作品38-无边框窗体方案(无抖动,支持win、linux、mac等系统,侧边半屏顶部全屏)的更多相关文章

  1. C# WinForm 拖动无边框窗体 改变无边框窗体尺寸

    经常遇到这种情况.窗体的边框去掉了.然后种种问题就出来了:不能拖动.不能改变窗体大小.不能......当然.肯定有解决方案滴*^_^*今天的目标就是:可以直接拖动没有边框的窗体.可以直接拉拽窗体改变其 ...

  2. Qt无边框窗体-最大化时支持拖拽还原

    目录 一.概述 二.效果展示 三.demo制作 1.设计窗体 2.双击放大 四.拖拽 五.相关文章 原文链接:Markdown模板 一.概述 用Qt进行开发界面时,既想要实现友好的用户交互又想界面漂亮 ...

  3. Qt:移动无边框窗体(使用Windows的SendMessage)

    移动无边框窗体的代码网上很多,其原理都是一样的,但是是有问题的,我这里只是对其修正一下 网上的代码仅仅实现了两个事件 void EditDialog::mousePressEvent(QMouseEv ...

  4. Qt 无边框窗体改变大小 完美实现(全部自己实现)

    近期,做项目用到无边框窗体,令人蛋疼的是无边框窗体大小的改变要像右边框那样,上下左右四周,而且要流畅. 网上也找了些代码,发现居然还要连接到windows事件,这显然不合常理,后来自己新建了demo, ...

  5. Qt 无边框窗体改变大小 完美实现

    近期,做项目用到无边框窗体,令人蛋疼的是无边框窗体大小的改变要像右边框那样,上下左右四周,而且要流畅. 网上也找了些代码,发现居然还要连接到windows事件,这显然不合常理,后来自己新建了demo, ...

  6. Qt无边框窗体-模拟模态窗体抖动效果

    目录 一.概述 二.效果展示 三.功能实现 四.相关文章 原文链接:Qt无边框窗体-模拟模态窗体抖动效果 一.概述 用Qt开发windows客户端界面确实是一大利器,兼顾性能的同时,速度相对来说也不错 ...

  7. qt动态库实现无边框窗体的消息处理 nativeEvent的使用

    需求: 在动态库中创建一个窗口句柄,可以给外部调用,库的调用者,通过这个句柄发送消息到底层库,库里面可以实现对消息的处理 m_FHandle=AllocateHWnd(WndProcDllMsg); ...

  8. 移动无边框窗体(设置标志位更流畅,或者发送WM_SYSCOMMAND和SC_MOVE + HTCAPTION消息)

    移动无边框窗体的代码网上很多,其原理都是一样的,但是是有问题的,我这里只是对其修正一下 网上的代码仅仅实现了两个事件 void EditDialog::mousePressEvent(QMouseEv ...

  9. 无边框窗体和timer控件

    一.无边框窗体 1.控制按钮如何制作就是放置可以点击的控件,不局限于使用按钮或是什么别的,只要放置的控件可以点击能触发点击事件就可以了 做的好看一点,就是鼠标移入(pictureBox1_MouseE ...

随机推荐

  1. python10-网络编程

    1,七层网络协议 应表会传网数物: 应用层.表示层.会话层 (这三层又可以合并为应用层,这样就是五层网络协议[osi五层协议]) python '你好'.encoding('utf-8') 传输层. ...

  2. MySQL:如何使用MyCAT实现分库分表?

    分库分表介绍 随着微服务这种架构的兴起,我们应用从一个完整的大的应用,切分为很多可以独立提供服务的小应用.每个应用都有独立的数据库. 数据的切分分为两种: 垂直切分:按照业务模块进行切分,将不同模块的 ...

  3. noip模拟6[辣鸡·模板·大佬·宝藏]

    这怕不是学长出的题吧 这题就很迷 这第一题吧,正解竟然是O(n2)的,我这是快气死了,考场上一直觉得aaaaa n2过不了过不了, 我就去枚举边了,然后调了两个小时,愣是没调出来,然后交了个暴力,就走 ...

  4. csps考前的一些总结(然而可能并没有用)

    记录考前的一些复习和总结,如果没有特殊情况不再写新的题解了 图论: 一.最短路: 1.spfa算法中的vis数组记录的是有没有入队,防止多次入队,通过松弛操作来达到最优解 2.dijkstra算法的v ...

  5. BLO

    BLO 内存限制:162 MiB 时间限制:1000 ms 标准输入输出     题目描述 Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ...

  6. EasyExcel随笔

    EasyExcel 注意点 不支持的功能 单个文件的并发写入.读取 读取图片 宏 csv读取 出现 NoSuchMethodException, ClassNotFoundException, NoC ...

  7. google protobuf的原理和思路提炼

    之前其实已经用了5篇文章完整地分析了protobuf的原理.回过头去看,感觉一方面篇幅过大,另一方面过于追求细节和源码,对protobuf的初学者并不十分友好,因此这篇文章将会站在"了解.使 ...

  8. 一文说透 Go 语言 HTTP 标准库

    本篇文章来分析一下 Go 语言 HTTP 标准库是如何实现的. 转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/561 ...

  9. ES6 学习笔记之对象的新增方法

    1. Object.is() ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===).它们都有缺点,前者会自动转换数据类型,后者的 NaN 不等于自身,以及 +0 等 ...

  10. 第三方API对接如何设计接口认证?

    一.前言 在与第三方系统做接口对接时,往往需要考虑接口的安全性问题,本文主要分享几个常见的系统之间做接口对接时的认证方案. 二.认证方案 例如订单下单后通过 延时任务 对接 物流系统 这种 异步 的场 ...