C++ 程序的圖形化界面運行,需要用到什麼工具?

學習 C++ 的過程中,需要將一些小程序以圖形界面運行,不會實現,想了解 GUI 編程,不知道使用哪些工具,MFC、Qt?

希望給出比較和介紹,想做簡單的入門。


qt挺不錯的,功能強大,資料多,文檔完善,

就是略龐大了一些,不過學會了也是一門手藝,找工作能堂而皇之寫上去。

不過更推薦 @vczh 輪子哥的GacUI啦,相對qt肯定沒那麼完善,不過小巧,

做小程序基本足夠了,最最重要的其實是輪子哥其實非常newbie friendly,

有問題請教他基本都能得到解答。


來看GacUI,1.0馬上就要做完了,剛剛才發了一篇文章:https://zhuanlan.zhihu.com/p/33562935


GNU的Gtk,輕量級的FLTK,功能全面的Qt,老掉牙的wxWidget。

你隨便搜一下GUI library,能搜出很多啊。


個人現在喜歡用C#寫好界面然後把C++封裝到dll里


windows.h

(逃


除了類似QT這種跨平台的實現,圖形用戶界面大部分都是平台相關。根據列舉的MFC,先假定問的是Windows平台。

Windows原生圖形用戶界面開發,在以前很長一段時間,都是基於HWND窗口句柄的Win32 GUI,每個窗口及控制項,都有一個HWND窗口句柄與之對應。後來在MSN和OFFICE等Windows自家軟體里,逐步開始使用Direct UI,也就是除了外層承載的主控制項或主窗口,內部控制項沒有HWND窗口句柄,而是通過內部代碼維護的數據結構管理顯示、輸入與事件處理,但是這種方式只是微軟自己使用,沒有對外。而到了再後來,推出了WPF,通過xml配置UI,也是通過Direct 不過這玩意和.NET Framework綁定,C++要使用,需要用上微軟擴展的託管C++,應該不符合需求。

所以想在Windows平台做些簡單的圖形用戶界面開發,應該就是在Visual Studio下,通過可視化編輯器,或者純代碼,使用Win32 GUI。這種技術,在書店或者網上,找下Visual Studio圖形用戶界面開發相關的書籍和文章,看看就差不多了。

另外,問題提到的MFC,基礎也是Win32 GUI,只不過使用C++的宏及類等,對基礎API做了一定封裝,使用起來更簡便一點。但是也是因為多了這層封裝,新用戶習慣了MFC,對於圖形用戶界面本質的一些理解,可能沒有使用基礎API那麼深。至於如何選擇,看個人的偏好及需要了。

此外,在接觸使用過一段時間之後,對於圖形用戶界面有了自己的理解,這時候再來選擇使用哪種技術,或者更深入了解原理後,自己來實現圖形用戶界面底層,也未嘗不可。


Qt,mfc太老了,Qt的好處就不多說了,Qt也不難入門的。


既然是自己玩的小程序那就不要想了無腦mfc gayui duilib 怎麼easy怎麼來

qt是給中型~大型項目用的,光是安裝包大小都是和vs一個級別,裡面的很多東西可能你一輩子都不會用到。不過如果你有花(浪)費一兩天時間入門的決心,還是可以試一試。

如果是大型項目,那麼題主也沒有決策權 ,來這裡問也沒用, leader說用啥就用啥吧。

如果項目和ui和功能可以完美解耦(就是拆開) 而且不在乎程序大小的話,也可以用考慮html(nw.js和electron),涉及到具體產品的話可以參考xx雲音樂 和 xx音樂 還有vscode。

為什麼我要特意推薦用html呢?因為ui出了屎可以甩鍋讓前端擦屁股(逃


他山開發框架大發好!


輕量級的界面編程推薦qml,一款由QT開發的解釋型編程語言。

複雜的再用QT,不推薦QT與QML混編


用qt,文檔全面資料多,開發也比較方便。


實用角度的話還是推薦qt,另外再推薦個沒人提到過的imgui


我知道不會有人推薦 gtkmm 和 PyGObject 的……


好吧,講道理,實用角度出發,還是 Qt 吧,功能全面,Python 就用 PyQt 好了。當然你要小巧跨平台,也可以用 wxWidgets 和 wxPython。如果只考慮 Windows,也可以用 MFC WTL 啥的,不過這倆就沒有 Python 綁定了,你還是得用別的。


python我用過tkinter

c++我用過qt

入門的話用qt,網上資源很多的


推薦用Qt,簡單入門可以去各大公開課網站搜索Qt視頻教程,例如B站。

python 同理


C++/CLI 聯動 WPF.

除此之外沒有特別好使、文檔齊全、與C++能一起用的。


推薦閱讀:

我的Live -- 爬蟲從入門到進階
為什麼中國的 Ruby 和 Python 活動大多在上海而不是北京?
異常(exception)和執行失敗有什麼區別?
PY交易(二)使用Pygame寫一個小遊戲——Pie
anaconda中如何安裝keras?

TAG:Python | 圖形用戶界面 | CC |