我本身是做客戶端開發的用的技術基本是c# wpf,現在公司要求跨平台,雖然現在.net6 預覽版已經開始跨平台了但是我看只是在macOS 安卓 ios 上能用(感覺對移動平台支持的比較多),而我們需要是需要在國產操作系統上去跑客戶端應用,不是很符合預期,於是看了一下Qt,但是我本身c++ 也不是熟悉,就在GitHub上搜到了 therecipe/qt,研究了一下以供參考。
先說一下我這里用的開發環境:
操作系統:win10
go版本:1.13.4
qt版本:5.13.0
開發工具:vscode
安裝golang和qt的過程我就不一一贅述了。因為網上已經有很多了。
設置go modules 代理 :go env -w GOPROXY=https://goproxy.cn,direct
設置GO111MODULE
為on
設置Qt環境變量
如果安裝的不是5.13.0 還需要添加一個QT_API的環境變量 為你的版本號 例如 5.13.0
開始安裝 therecipe/qt
在命令行執行 go get -v github.com/therecipe/qt/cmd/...
等待命令執行完成之后在命令行輸入 %GOPATH%\bin\qtsetup
進行安裝
安裝完成之后 會在你的gopath 下的bin里面生成這幾個程序
至此therecipe/qt已經安裝完成,寫個demo測試一下
package main import ( "os" "github.com/therecipe/qt/widgets" ) func main() { widgets.NewQApplication(len(os.Args), os.Args) window := widgets.NewQMainWindow(nil, 0) label := widgets.NewQLabel(window, 0) label.SetText("Hello world") window.Show() widgets.QApplication_Exec() }
編譯的時候 就不能用go build 來編譯了 需要使用 qtdeploy build desktop main.go 來進行編譯
需要注意的是 此時 如果提示 “qtdeploy 不是內部或外部命令,也不是可運行的程序或批處理文件。”
這個時候 需要你把 剛才安裝therecipe/qt 時生成的qtdeploy.exe 添加到環境變量里面去。重新打開
命令窗口即可使用。
編譯完成后會生成這么幾個文件夾如下
編譯好的程序就在 deploy 文件夾下 對應的平台文件夾下 比如我編譯的windows 就是在 deploy\windows\下
雙擊執行exe
至此開發環境搭建完成