03.03 如何開發桌面GUI應用程序?都有哪些方法?

墨童


這個就很多了,幾乎每種編程語言都可以開發桌面GUI應用程序,下面我簡單介紹一下,主要包括C++,Java,Python,C#,Html這5種語言,主要內容如下:

C++

1.MFC:這個是最古老的開發桌面GUI程序的框架了,微軟自家提出並實現的,相信大部分早期接觸Windows桌面編程的人員都聽說或接觸過這個框架,封裝了大量的底層Windows API,可以快速開發桌面程序,降低編程人員的工作量,不過,實現細節比較複雜,初學者不易學習掌握,而且靈活性不高,不具有跨平臺性,目前應用範圍比較小:

2.Qt:這個C++應用程序開發框架,大部分人都應該聽說或使用過,免費、開源、跨平臺,對於初學者來說,非常容易學習,相比較MFC來說,實現細節沒有那麼複雜,自帶有Qt Designer這個設計工具,控件眾多,只需拖拽、編輯屬性,便可快速創建一個界面美觀的GUI桌面應用程序,使用起來非常方便:

Java

這個主要使用的就是Java自帶的Swing GUI包了,相信接觸過Java桌面開發的人員,都應該使用過這個包,既可以純代碼寫GUI界面,也可以安裝WindowBuilder這些插件,直接拖拽相關控件,生成GUI界面,使用起來也非常不錯:

Python

1.tkinter:這個是最基本的一個Python GUI庫,小巧靈活、跨平臺,使用起來非常方便,對於日常開發小型應用來說,可以考慮使用一下這個庫:

2.wxPython:這是Python一個優秀的GUI開發庫,相比較tkinter來說,功能更強大一些,免費、開源、跨平臺,控件眾多,網上相關學習資料也不少,感興趣的話,可以學習一下:

3.PyQt:這個顧名思義,就是Qt提供給Python的一個接口,也可以快速開發桌面GUI程序,所有組件均來自於Qt,只要你有一定的Qt基礎,很快就能掌握的,對於開發中大型應來說,可以考慮使用一下這個庫:

C#

這個應該是最簡單快捷的方式了,C# WinForm可以快速創建桌面應用程序,官方組件眾多,只需簡單拖拽,設置屬性和事件,就可快速創建一個桌面GUI程序,目前來說,C#也開始支持跨平臺了,應用範圍也挺廣的,相比較微軟自己的MFC來說,C# WinForm學習起來更快,也更簡單,對於開發桌面GUI來說,是一個非常不錯的選擇:

Html

如果你對C++,Java等這些編程語言都不瞭解,就只會簡單的前端Html等,也可以開發桌面GUI程序,先用html,css,js編寫界面,接著可以藉助nodejs的electron將頁面打包成桌面應用,配置過程相對複雜一些,但也是一種實現桌面GUI開發的手段,可以嘗試一下:

總的來說,這5種編程語言都可以開發桌面GUI程序,各有優缺點,根據實際項目,選擇合適的一種就行,當然,你也可以利用Delphi和VB來開發桌面GUI程序,都是可以的,網上也有相關資料和教程,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言。


小小猿愛嘻嘻


沒有最好的語言,只有最合適的語言。作為一名一線開發者,就自己所常見的一些桌面GUI應用程序開發做一總結,歡迎大家留言討論。


C/C++系列

可以說是上手難度最大的一種了,GUI開發目前主流主要有MFC、Qt,還有Duilib等第三方界面庫的使用。

1)MFC

該玩意基本上已經被親爹微軟拋棄了,基本是老項目的維護。若入職的公司歷史代碼採用MFC來開發,當然,你沒得選,只能老老實實的繼續MFC,雖然這玩意寫起來真的很虐心。如果是新手,不建議選擇MFC,不建議選擇MFC,不建議選擇MFC,重要的事情說三遍。

2)Qt

號稱可以跨平臺,語法結構簡單清晰。面向對象的特性體現的比MFC明顯。代碼寫起來比較優雅,也就是說上手會快一點,最新版本支持的特性QML,可以讓我們用JS,CSS來繪製客戶端界面,寫起來效率也是蠻高的。缺點就是文檔可能沒有MFC那麼齊全,基本只有官方的官網和Demo,而且發佈包體積會比較大。下面是一款使用QML繪製的界面效果圖(來源:一去丶二三里)。

3)Duilib

目前已開源,是一款強大的界面開發工具,可以將用戶界面和處理邏輯徹底分離,極大地提高用戶界面的開發效率。唯一不足的是原開發者已經停止維護,很多都是個人在維護,出了問題的話,只能自己去摸索,Debug。下面是一款個人使用Duilib開發的迅雷播放器界面效果。

Java

使用Java開發,J2SE技術,當然也可以很好的完成桌面GUI程序的開發,藉助Java的虛擬機技術,天然跨平臺支持,不過其也有著致命的缺陷,不夠高效,而且不像C# 那樣有一個好的親爹。貌似Java流的程序猿選擇J2EE技術要多於J2SE。


C#

程序界的富二代,有著微軟這一親爹的扶持,VisualStudio強力支持。通過簡單的拖拽界面,即使你是一個新手,也可以快速做出一款有著可視化界面的GUI程序,當然想要做好、做深入了還是需要你花費一定的功夫來學習的。常見的管理系統使用它來開發的還是很多的。

JavaScript系列

目前比較火的應該就算Electron了,常見的VSCode、Atom都是採用它開發而成。宣城自己可以通過使用JavaScript、HTML和CSS構建跨平臺的桌面應用程序,讓人們感覺JS真的有一統天下的趨勢(Web、移動端、PC客戶端)。開發效率真心的高,不過貌似推廣的不是很給力。商用上的不是太多。期待JS一統天下。


一個程序員的奮鬥史


c#應該是開發win桌面程序最好的語言了


分享到:


相關文章: