【golang-GUI開發】Qt5的安裝

來源:互聯網
上載者:User

golang一直被認為沒有好的GUI庫,事實並非如此。

目前有基於gtk+3.0的gotk3:https://github.com/gotk3/gotk3

以及接下來我們要說的qt:https://github.com/therecipe/qt ,這是基於最新的Qt5(5.11)的非官方的binding。

選用qt的理由

選擇therecipe/qt的理由是首先因為它提供的API與原生Qt以及其他binding(例如pyqt5)幾乎一樣(少數區別我會在下面幾篇文章仔細講解);

其次是因為作者更新很勤快,bug的修複比較及時;

最後是因為Qt作為一種使用廣泛的架構,文檔豐富全面,社區活躍,如果你遇到了什麼問題解決起來會更容易一些。

跨平台支援:

為什麼不用gotk3

gtk+3同樣是一個使用廣泛跨平台的GUI架構,它同樣功能豐富,有一群優秀的開發人員在維護。

不過和Qt的規模相比還略顯得小了一些,而且gtk+和python一樣存在2和3兩個版本的斷橋式飛躍,從gtk+2遷移至3會遇到不少小麻煩;

gtk+的文檔也沒有Qt那樣詳盡;以及gotk3的維護並不活躍。

最重要一點,gotk3在並發使用時需要使用額外的API,不能直接和goroutine配合。

至於callback VS signal/slot,我對兩者都不感冒,我個人有gtk+/gtkmm和Qt是使用經驗,經驗告訴我使用Qt會輕鬆很多。

所以基於如上原因,我選擇了therecipe/qt這個庫。

安裝

接下來是如何安裝這個Qt的golang binding。

在go get之前我們還有些準備工作要做。

首先是安裝完整的Qt5,為什麼要完整安裝呢,因為這個庫並沒有選擇安裝模組的功能,缺模組會在以後使用時輸出大量ERROR資訊,我對終端輸出有潔癖,所以全部安裝保平安了,如果你覺得這樣做不太舒服,可以積極提issues或者是技術大牛可以直接提交PR參與貢獻 :- P。Qt下載地址:https://download.qt.io/official_releases/online_installers

Qt需要安裝在你的$HOME目錄下,為了避免日後使用中的問題,因為therecipe/qt使用Qt時,需要自己在qmake bin目錄裡產生一些工具的連結,如果你的Qt安裝在非HoOME目錄裡,那很有可能需要使用許可權,這樣編譯出來的庫就只有許可權使用者能用了,所以建議將Qt5.11裝在你的$HOME裡,以及在接下的安裝中請不要使用sudo等命令。

因為會安裝Qt的源檔案,所以安裝時會有一定卡頓,等一會就好了。

然後是配置Qt的環境,修改你的~/.bash_profile,~/.profile,修改好後source ~/.bash_profile或者登出使用者重新登入來使配置生效(當然,重新啟動系統也可以)。

修改樣本:

# ~/.bash_profile# therecipe/qt 需要的環境變數export QT_DIR='/home/使用者名稱/Qt5.11.1' # 安裝Qt的目錄export QT_VERSION='5.11.1'           # Qt的版本號碼export QT_DEBUG=false                # 是否啟用debugexport QT_STUB=false                 # 記憶體低於2Gb或32位系統才需要設定true# go1.10 cgo environments 使用go1.10時需要的設定export CGO_CXXFLAGS_ALLOW=".*"export CGO_LDFLAGS_ALLOW=".*"export CGO_CFLAGS_ALLOW=".*"

除此之外還需要有g++5.0+以及一些OpenGL的依賴

# Debian/Ubuntu的安裝命令sudo apt-get -y install build-essential libglu1-mesa-dev libpulse-dev libglib2.0-dev# Fedora/RHEL/CentOSsudo yum -y groupinstall "C Development Tools and Libraries"sudo yum -y install mesa-libGLU-devel gstreamer-plugins-base pulseaudio-libs-devel glib2-devel# openSUSEsudo zypper -n install -t pattern devel_basis# Arch Linuxsudo pacman -S base-devel

在這些準備都做好之後,就可以開始安裝therecipe/qt了。

這裡介紹Liunx上的安裝安裝方法,因為我是在Linux上寫代碼的,

其他系統請移步此處:Windows:https://github.com/therecipe/qt/wiki/Installation-on-Windows , MacOS:https://github.com/therecipe/qt/wiki/Installation-on-macOS 。

安裝qt-tools:

go get -u -v github.com/therecipe/qt/cmd/...

然後是安裝bindings,記住遠離sudo!!!

$GOPATH/bin/qtsetup

產生binding需要編譯一些Qt的source檔案,所以要花上一段時間,安裝完成後會啟動幾個程式樣本。

總體安裝需要6Gb不到的磁碟空間(因人而異)。

至此安裝結束,我們已經可以在程式裡import github.com/therecipe/qt/widgets來使用各式各樣的Qt組件了。

不過要想運行你的程式,光用go build是不行的,因為庫使用了moc技術,下一篇部落格將會介紹如何編譯使用了Qt的golang代碼。

 

參考:

https://github.com/therecipe/qt/wiki/Installation

https://github.com/therecipe/qt/wiki/Installation-on-Linux

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.