Qt開源作品38-無邊框窗體方案(無抖動,支援win、linux、mac等系統,側邊半屏頂部全屏)

飛揚青雲發表於2021-07-27

一 前言

不知道各位程式設計師有沒有遇到過這樣一種困惑,好不容易在開源網站找到了類似的想要的專案程式碼,結果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

相關文章