当前位置: 首页 > 工具软件 > GoQt > 使用案例 >

Qt开发之Go篇(一)

邴子实
2023-12-01

作为电子学攻城狮,GUI开发并不是我主营业务,然而偶尔也会有一些小工具的开发需求。之前一直用PyQt5写上位机界面,奈何Python在性能上,尤其是在多线程方面,存在先天劣势。然而本人C++水平也就停留在经典C++的程度,基本上都是在当C使,一些C++的新的方式方法实在是对我这个业余人士不太友好。因此我想尝试再掌握一套新的开发方法。结合我本身已有的技能点,我希望能满足以下要求:

  • 简单,便于从C/Python过渡
  • 有Qt binding
  • 性能比Python强
  • 方便操作网络/串口/底层设备等

海选了一圈,符合我要求的语言不就是Go嘛。其实老东家的软开那边有不少项目是用Go写的,不过我作为业余人士并没有往那边去了解。现在趁有这个兴致搞起来。

Go语言的Qt binding有三个,visualfc/goqt,kitech/qt.go和therecipe/qt。goqt是比较早期的一个项目,支持Qt4.8/5.5,但是已经有年头没更新了(最后提交2016.1)。qt.go也有一阵子(最后提交2019.4)没更新了,它不使用cgo,因此编译速度快,最新版支持Qt5.12。therecipe/qt是更新最活跃的,那就选它了。

Qt binding嘛,应该都大差不差,哥可是会用PyQt5写界面的男人。然而当我真正开始学习的时候,我发现我的想法还是简单了。首先,Go没有类,那我窗口控件怎么操作?然后Go没有泛型,那么多同名的函数到Go里边咋调用?Designer生成ui文件又怎么转成go代码?网上一搜,啥都没有。得了,只能根据寥寥可数的example自己摸石头过河吧。

Go语言的GUI开发环境目前还都是不太成熟的,甚至连Go语言本身也还有很多需要改进的地方。作为一个有思想有觉悟有追求的人,寻思怎么着也得给这个社会做点贡献,我决定把我填坑的经验写下来,写得详细一些,万一多忽悠一些人来一起填坑,有朝一日总能把坑给填平了。

本人经验有限,时间有限,精力有限,因此我就这么随便一写,大家也就那么随便一看,保不齐啥时候就停更了。作为业余人士,请各位不要用代码大神的标准来衡量我的代码,毕竟我的诉求从来都是自娱自乐,能用就行。

 类似资料: