设为首页 收藏本站
查看: 1174|回复: 0

[经验分享] 【golang-GUI开发】Qt5的安装

[复制链接]

尚未签到

发表于 2018-9-20 12:37:03 | 显示全部楼层 |阅读模式
  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作为一种使用广泛的框架,文档丰富全面,社区活跃,如果你遇到了什么问题解决起来会更容易一些。
  跨平台支持: DSC0000.png
  为什么不用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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-598876-1-1.html 上篇帖子: Golang版本的rocksdb-对gorocksdb的封装 下篇帖子: Hello TensorFlow 三 (Golang)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表