標籤:

go語言的gui開發一般用什麼工具,用goqt的人多嗎?


Go語言的GUI開發庫其實非常多,有原生態的ui,也有介面的gtk、wxWidgets,下面我簡單介紹一下,感興趣的朋友可以自己嘗試一下:

ui

這是GO語言一個原生態的GUI開發庫,可以跨平台使用,API簡單,充分體現了Go語言的特性,對於想開發簡單桌面GUI的朋友來說,非常適合,很容易學習和掌握,GitHub地址https://github.com/andlabs/ui,如下:

安裝的話,直接在終端輸入命令「go get github.com/andlabs/ui」就行,安裝完成後,就可以直接編寫代碼進行測試了,官方源碼也自帶了examples簡單示例,可供初學者參考學習,如下:

可以直接查看Demo示例源碼,如下:

程序運行效果如下,比較簡譜:

go-gtk

這是GTK的GO介面,藉助於GTK強大的組件,GO語言也可以快速開發出GUI程序,而且可以跨平台使用,GitHub地址https://github.com/mattn/go-gtk/,如下:

安裝的話,也直接在終端輸入命令「go get github.com/mattn/go-gtk/gtk」就行,之後就可以直接編寫代碼了,官網源碼也自帶了example示例,非常豐富,如下

對應源碼也可以直接查看,如下:

相關程序運行效果如下,也比較簡譜:

wxGO

這是wxWidgets的GO介面,可以跨平台使用,組件和功能都比較強大,藉助於wxWidgets,GO語言也可以快速開發出桌面GUI程序,GitHub地址https://github.com/dontpanic92/wxGo,如下:

安裝的話,也可以直接輸入命令「go get github.com/dontpanic92/wxGo/wx」,不過下載比較慢,容易失敗,這裡建議下載到本地,再複製到$GOPATH目錄下安裝,官方也自帶有簡單的入門示例,在examples目錄中,如下:

也可以直接查看源碼,如下:

程序運行效果如下,也很不錯:

至此,我們就介紹完了GO語言這3個GUI庫的安裝和簡單使用。總的來說,這3個庫使用起來都非常簡單,官網GitHub上也有詳細教程和資料,只要你熟悉一下,很快就能掌握使用的,對於日常開發簡單的桌面GUI來說,完全夠用了,但如果需要開發大型桌面GUI程序的話,建議還是使用其他語言,像C++,C#等,更方便,效率也更高,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。


我喜歡jetbrains系列的IDE+go插件。不過我要說的是這個問題主要看你的觀點如何。

說eclipse:

構建方式是使用go install 命令,每一次編譯運行都是go install。這樣的好處就是如果你有很多的包,下載下來並沒有編譯,這樣每次編譯速度是很快的。而且(!)go install 符合go官方的項目結構,官方說過了,一個go的項目應該是以個gopath,包含src,pkg,bin三個主要目錄。所以說go install個人認為才是主要的go編譯方式。

說eclipse的缺點:

其實eclipse插件的go編譯方式,還有目錄結構,項目結構,都是非常完美的!!!!真的很完美!可是,他的代碼提示,太差件!大括弧都不能自動補全,gdb 32bit 64bit兼容問題,eclipseC++ 沒有html js插件,需要手動安裝,幾乎不能開箱即用。不過如果你是開發演算法,數據處理,還是推薦eclipse的,畢竟其他都無關緊要。

說jetbrains:

說先說clione肯定不適合,新建項目沒有嚮導,導致改成go項目各種不開心,比如圖標對於我來說就無法接受go lib 不是小耗子~這是次要的,重要的是各個文件都是灰色的(沒有在cmake中包含的結果),然後說剩下的,phpstorm這個不說了,估計很少有人插件按在這裡,webstorm,體驗也不是很好,idea?體驗很好,可是畢竟比較重,尤其是現在加入了自家的K啥玩意(無意冒犯,沒記住單詞)~可是話說回來,go跟C系列IDE配合才是最佳,跟java系列一點不搭關係,用idea似乎有點格格不入,但是!idea支持新建項目嚮導,lib的圖標也很清晰,最後還是選擇idea吧,期待clion的強大起來!

再說jetbrains系列缺點:

插件的構建方式是go buiild 這個讓人很不爽,我們幾乎不確定會構建到什麼地方去,還要每次設置一下run配置。這個可能無關緊要,畢竟不是什麼大的毛病,可是go build不能緩存.a文件,直接構建的結果就是很多第三方包的情況下很慢!所以建議安裝包的時候手動install 一下解決這個問題。自帶代碼格式化,這個格式化跟go 格格不入,總的來說就是蛋疼,心碎,菊花癢。

最後說liteIDE:

輕量級IDE,我可以說是國人GO偉大作品典範,然而默認構建也是go build,項目管理方式不符合go官方標準。代碼提示不能自動導入(eclipse也不能),不過如果你的項目是以包為單位的,那麼另當別論。一定很不錯,畢竟是輕量級專門針對GO的IDE!

說這些,其實還有很大一部分取決於你的項目是用vendor機制管理,還是godeps機制管理依賴關係。go不像java擁有強大的幾乎天下一統的maven(無意冒犯,暫不評價其他構建套件)。

go沒有官方包倉庫。

go沒有官方包管理工具。

go沒有官方自動化構建套件。

上面三個沒有是致命要害。導致民間各種百花齊放。

說說我的項目怎麼管理

gpm 一個shell工具(windows下你可以用git的bash,或者cygwin~)

我是嚴格艷照官方推薦方式管理go項目,一個go項目一個gopath。系統的gopath只是為了安裝go命令,我沒有配置gobin,意義不大。

項目的依賴跟我的代碼包都在src下(非vendor)

vendor用來存放包的特殊依賴,發布項目直接把依賴包發布上去(公網管理則只上傳依賴關係文件 godeps文件)

資源文件等都放在src目錄同級,編譯文件放在bin,引用直接../引用。


go語言就不是為gui而生,換其它語言吧


推薦閱讀:

萬達要進軍區塊鏈,你是否看好?
你在玩遊戲的過程中遇到過哪些想讓你投訴的事情?
SD-WAN,不只是省錢
現在中國和美國的量子計算機發展誰更優秀一?

TAG:Go語言 | 科技 |