码迷,mamicode.com
首页 > 其他好文 > 详细

利用Qml与Golang打造Gui客户端(一)

时间:2020-02-26 13:57:46      阅读:1152      评论:0      收藏:0      [点我收藏+]

标签:效果   asp   asc   初始化过程   pyqt   百度   qt安装   href   报错   

前言

本人一直在寻求一个利用golang来编写linux的gui程序的工具,凑巧之间发现了qml这个好东西。其简单的语法加上底层c++(Qt)的支持让我直接就爱上了他,并且众所周知,golang可以与c++进行交互那么既然c++可以和qml进行通信,那么golang也可以与qml进行通信。Qt官方虽然没有关于golang的官方支持(Python有PyQt),但是github上有很多第三方的支持库。这里挑三个典型的qml&golang的第三方库区分下优缺点,并选出我个人认为最适用的来进行后续Gui程序的编写

Go-Qml、therecipe/qt、qamel对比

Go-Qml(Github)

go-qml这个库可以说是想到的最早支持golang&qml的第三方库了,百度上大多数golang和qml通信的教程也是关于这个库的
优点:

  • 百度资料丰富,上手简单
  • 有官方的教程视频,可以边看边学

缺点:

  • 很久不更新维护了

therecipe/qt(Github)

therecipe/qt这个库可以说是目前支持golang&qml最齐全的第三方库库了,其坐拥7k的stars足以可见其效果有多??逼
优点:

  • 功能最齐全
  • 有官方examples
  • 支持的平台最丰富,支持Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly
  • 支持docker

缺点:

  • 安装比较困难,由于国内某个原因,在安装的时候会有很多网络问题,建议git下来自行编译安装
  • 需要安装Qt的全部组件,如果在Qt安装时没有安装全部组件,在初始化过程中会报错尤其是QtScripts这个组件
  • 体积庞大,编译一次需要生成很多中间c++代码,速度也比较慢,脱离了golang编译速度快的初衷

Qamel(Github)

qamel这个库是受到therecipe/qt这个项目的启发而创建的,其非常轻量,安装简单上手非常容易
优点:

  • 安装非常简单,每一个步骤都有详细介绍,跟着一步一步做保证没有问题
  • 有官方examples
  • 编译速度很快,体积比therecipe/qt
  • 支持docker

缺点:

  • 功能没有therecipe/qt完善
  • 仅支持Linux,Windows系统交叉编译

小结

由于go-qml已经很久没有维护了所以肯定不会选用他,剩下的就在therecipe/qtqamel选了。本人也是两个库都安装了一次,therecipe/qt可以说是非常的坑,像什么无法初始化工具qtsetup、go mod项目无法编译、编译速度太慢体积过大等等;而qamel的安装可谓一路没有坑点,每一步他都有详细的说明,除非你看不懂英文绝对不会犯错误,并且编译速度非常快但是支持的平台太少了。因此总结如下:

  • 如果你有跨平台的要求如Windows、MacOs、Linux互通,则选择therecipe/qt
  • 如果你想要快速的编译速度则选择qamel
  • 如果你不想本机配置环境想通过docker则两者都可以
  • 如果你想要一个简单的够用的工具则选择qamel

利用Qml与Golang打造Gui客户端(一)

标签:效果   asp   asc   初始化过程   pyqt   百度   qt安装   href   报错   

原文地址:https://www.cnblogs.com/kamir/p/12366678.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!