最近悟空問答上有不少人問,有哪些好用的C++界面庫,我是做Windows應用程序開發的,做過很多UI客戶端程序,對這一點比較了解,在此結合這些年的開發經驗,給大家推薦幾款常用的、免費的C++界面庫,以供參考。
1、微軟的MFC我剛畢業那會,基本用的都是MFC,感覺相對來說是比較簡單的。
MFC是微軟基于Windows系統開發的一套經典C++桌面程序開發框架,集成在微軟的Visual Studio開發環境中,只要下載安裝Visual Studio即可使用。自帶界面可視化設計工具,提供編輯框、按鈕、等多種常見控件,只需簡單將控件拖拽到窗口中,編輯控件屬性,即可快速構建一個GUI界面程序。為開發人員節省了編寫代碼時間,對于初學者,入門相對比較簡單。MFC在早期桌面開發中非常流行,一直扮演著重要角色。但設計思想太過復雜、使用起來不夠靈活,只是提供普通的、沒有美化的窗口或控件,如果要做界面美化,需要對窗口和控件進行自繪。這需要做大量的工作,需要處理很多窗口消息,重新實現部分窗口繪制邏輯,即便是這樣,也很難實現絢爛多彩的界面。MFC正在逐漸走向沒落,僅有一些老項目還在使用。
對于Windows開發人員,還是要學會使用MFC的,即使商用項目中不使用MFC,但在日常工作中會編寫一些測試用的工具,可能會用到的。另外,通過編寫MFC代碼,也能加深對Windows窗口的繪制機制及消息處理機制的理解。
我們的視頻會議+即時聊天項目組在若干年前用的也是MFC,MFC在某些場景下有很大的弊端,比如在實現類似QQ的聊天窗口時,每個控件都是一個實實在在的窗口,每個窗口會用到若干個GDI對象〔用于窗口繪制〕,所以一個聊天窗口可能會用到200多個GDI對象,在測試人員做極限測試時,會打開幾十個甚至上百個聊天窗口,這樣程序總的GDI對象就會增長到上萬個。做Windows程序開發的老程序員應該都知道,如果一個程序的GDI對象達到或接近1萬個后,就會導致窗口繪制異常,程序出現崩潰。所以后來我們下決心將MFC替換掉了。當然,除了打開多個窗口會導致程序的總GDI對象達到上萬個,程序運行過程中如果有GDI對象泄露,也會導致GDI對象不斷增長。
2、跨平臺的QTQT是由Qt Company公司于1991年開發出來的跨平臺C++圖形用戶界面應用程序開發框架。相信很多開發人員都聽說或使用過這個框架,和MFC類似,有一套支持可視化的UI設計工具,組件眾多、功能強大,只需簡單拖拽控件、編輯控件屬性,即可快速構建一個可視化桌面應用程序,所見即所得。
Qt Creator是一個用于QT開發的輕量級跨平臺集成開發環境,它提供首個專為支持跨平臺開發而設計的集成開發環境,并確保首次接觸QT框架的開發人員能迅速上手和操作。另外,包含了一套用于創建和測試基于QT應用程序的高效工具。
QT開源社區活躍、官方資料眾多,可以嘗試著去學一學。
如果你開發的界面程序要支持跨平臺,QT是個不錯的選擇。現在很多視頻監控廠商(比如海康威視和大華)都采用QT來開發他們的UI客戶端應用程序,因為他們既要支持Windows系統,也要支持在Linux國產化系統上運行。
國家近幾年一直在推國產化系統,比如以前的中標麒麟系統、銀河麒麟系統,都是基于Linux深度改造優化的操作系統。現在兩家公司合并了,推出了UOS統一操作系統,我們公司也于去年開發了跑在這些國產化Linux的視頻會議軟件,使用就是QT界面庫。
3、免費開源的DuilibDuilib是一個Windows下基于DirectUI技術的免費開源界面庫。DirectUI技術和思想是由微軟提出來的,并廣泛的應用到微軟的產品中。大家熟知的MSN Messager聊天軟件的界面就是使用DirectUI實現的。
Duilib也是國內首個開源的DirectUI界面庫,被眾多知名軟件廣泛使用。Duilib界面庫使用XML來描述界面風格和界面布局,可以很方便的構建高效絢麗的、非常易于擴展的界面,從而很好的將界面和邏輯分離,同時易于實現各種超炫的界面效果如換色,換膚,透明等。網上關于Duilib界面庫的資料和demo代碼越來越多,有興趣的可以學習一下。
現在很多大公司也在使用這個界面庫,比如百度云管家(百度網盤)、愛奇藝PPS客戶端、微信PC客戶端、拼多多PC客戶端、ZOOM視頻會議客戶端、Kugou音樂、酷我音樂盒、2345好壓壓縮軟件等。他們在使用這個界面庫后,對這個界面庫做了深度改造和優化。QQ現在的界面也是基于DirectUI思想設計的。
我們公司的多個軟件產品也在用這個界面庫,當然我們做了很多改進。
其他界面庫除了上面講到的三種常見的免費界面庫之外,還有一些其他的免費的或收費的界面庫。比如支持類似于微軟office 界面風格的BCGControlBar界面庫,VS2008開始微軟在MFC中引入了BCG的部分界面,效果還不錯,以前的軟件中用過。還有WTL、WPF、Skin++、SOUI、LibUISDK、DSkinLite、wxWidgets等。這些界面庫也有相關的資料、教程和demo代碼,介紹的都比較詳細,有興趣的話,可以去看一下。
最后希望以上分享的內容能對你有所幫助,也歡迎大家留言、評論進行補充,也可以和我在線交流。
本文發布于:2023-02-28 19:59:00,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/167764744973281.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:directui(DirectUI).doc
本文 PDF 下載地址:directui(DirectUI).pdf
| 留言與評論(共有 0 條評論) |