我本身是做客户端开发的用的技术基本是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%inqtsetup
进行安装
安装完成之后 会在你的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 就是在 deploywindows下
双击执行exe
至此开发环境搭建完成