[software development] 推荐一个对标QT的国产跨平台软件开发框架SOUI
Tofloor
poster avatar
150******72
deepin
2025-02-05 18:11
Author

大家好!大家开发软件是不是苦QT久已?

QT作为跨平台软件开发框架是非常成功的,Linux平台开发客户端产品除了Qt基本上别无选择。虽然GTK也可以,但是GTK一方面很难用,也没有人在windows平台用GTK。

QT确实好,除了QT提供了很多工具帮助开发,Qt的那套基于sigslot的事件机制也是很多开发者选择QT的原因之一。

然而QT也不完美!

首先,商用使用QT需要非常昂贵的授权费;

其次,对于现有的为windows平台开发的软件(比如现在市场上大量的使用MFC开发的软件),想要移植到Linux等平台,如果使用QT,那就等于重新再开发一次。

此外,QT被很多开发者推崇的sigslot机制也并不完美:sigslot用起来很好用,就在于程序员可以在代码的任意位置使用connect来响应任意事件,然而凡是都有两面,这也是sigslot的缺点。由于没有规范,程序员在开发程序的时候任意使用Connect,这将使得后期的代码维护非常困难——对于一个接手一个QT项目的程序员,他不知道一个控件将会在哪里被响应。我自己当年就接手一个这样的项目,我唯一的办法就是通过字符串全代码搜索目标控件名。

现在新的跨平台开发框架终于完成了,那就是SOUI5+SwinX!

SOUI是我持续维护了10+年的一套Windows平台开发框架,已经在很多大厂很多项目中使用(如百度网盘,迅游,富途等)。SwinX是我历时近一年开发的一套Linux平台的Windows APIs,可以认为是一个精简版的Wine(不知道Wine的朋友搜索一下)。

使用SOUI开发客户端好比Android平台使用Java开发Android项目,布局全部使用XML实现,完全不需要代码参与就可以实现99%的布局需求。SOUI拥有完整的控件系统,完整的键盘支持,原生支持高分屏,多语言等,为PC客户端快速开发提供了坚实的基础。SOUI还提供了独家高性能虚表控件,可以实现各种复杂的海量数据展示。

SwinX为SOUI5的跨平台而生,依托SwinX,SOUI的所有功能现在都已经可以完美支持Linux(目前SwinX还不支持macos,后续时间允许也会支持macos)。

output.gif

上图是demo效果,由于没有找到更好的方式,这里上传的GIF,效果大打折扣了。

代码获取:

git clone https://gitee.com/setoutsoft/soui4

Linux(UOS)平台编译

首先需要使用git submodule update --init命令拉取soui5在linux运行时依赖的SwinX库。

拉取SwinX后,可以在swinx下找到build.md,里面有编译时需要安装的依赖库。

sudo apt install cmake git build-essential gdb libcairo2-dev libxcb1-dev libgl1-mesa-dev freeglut3-dev

安装完成这些库后执行

mkdir build & cd build

cmake ..

make

编译成功后使用

./bin/demo

来查看demo执行效果。

Demo界面上有QQ群号,对soui开发有兴趣的朋友可以加QQ群获得技术支持。

SOUI作者:启程软件 2025-2-5

Reply Favorite View the author
All Replies
150******72
deepin
2025-04-16 15:57
#1

微信图片_20250416155612.png

最新版本ui编辑器已经可以在linux平台运行。

Reply View the author