当前位置: 首页 > java >正文

【golang-GUI开发】Qt5的安装

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                # 是否启用debug
export 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/CentOS
sudo yum -y groupinstall "C Development Tools and Libraries"
sudo yum -y install mesa-libGLU-devel gstreamer-plugins-base pulseaudio-libs-devel glib2-devel# openSUSE
sudo zypper -n install -t pattern devel_basis# Arch Linux
sudo 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技术,下一篇博客(https://www.cnblogs.com/apocelipes/p/9300335.html)将会介绍如何编译使用了Qt的golang代码。

 

参考:

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

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

转载于:https://www.cnblogs.com/apocelipes/p/9296754.html

http://www.xdnf.cn/news/11039.html

相关文章:

  • DNS域名解析,以及A、AAAA、CNAME、MX、NS、TXT、SRV、SOA、PTR说明
  • VMware Workstation安装以及配置模板机
  • 某连锁酒店泄露数据的分析
  • 大学生个人网页设计 HTML个人网页制作 web个人网站模板 简单静态HTML个人网页作品
  • 能免费能发新闻软文外链的网站部分汇总
  • CMake中target_link_libraries的使用
  • tftp协议服务器IP地址,TFTP服务器的搭建
  • robots.txt 详解
  • Win7系统提示找不到autochk.exe文件的解决办法
  • 禁止鼠标右键的几种方法
  • 国企面试题:如果有第八号当铺,你愿意拿什么换这个offer?
  • 国内知名站长网站 ChinaZ 论坛宣布关闭
  • Android的HTTP方式网络通信----HttpClient
  • 基于MATLAB的CT直接反投影算法的实验研究
  • 蓝牙技术
  • Hibernate初学者教程
  • 【小松教你手游开发】【unity实用技能】 unity 接WP8 sdk的一些心得
  • suse日常操作(含suse/rhel内核与发行版对应关系)
  • 手把手教你如何破解无线网络密码(蹭网教程)
  • Ubuntu 7.10 Server 安装 Desktop
  • 软件破解脱壳法
  • Jolicloud试用记——网络、游戏和总结
  • 软件问题定义及可行性分析——数据字典
  • 仅需 5 步,用 JavaScript 直接通过前端发送电子邮件
  • 【探花交友】day05—圈子互动
  • vbs无限循环代码_vbs整人代码
  • Web挖掘技术
  • 【值得收藏的种子搜索引擎】
  • VC开发指南--Visual C++/MFC入门教程
  • 老司机是怎么找到资源的,掌握这些搜索技巧,全网资源都是你的