开源跨平台窗口 GuiLite 和 QT 下载安装记录

1、GuiLite--宣称6000行代码解决Windows+Linux+Mac+Android+vr+嵌入式 等的跨平台窗口解决方案。Github的项目地址:https://github.com/idea4good/GuiLite

下载研究了一下,其主要思想结构是,先申请一块跟显示器(或者目标窗口)相同大小的内存,然后把图像、文字、动画等内容,像素级别的绘制到内存当中,合成一张渲染后的图像(内存)。然后返回并绘制到目标平台窗口。

这种思路是很好的,对于简单的窗口应用程序,已经够用了。但要完全支持复杂窗口还需要进一步的完善。比如预测某段文字在特定格式下需要占据绘制目标的长宽,图像窗口里面需要插入控件,相对布局,布局文件,自动换肤,绘制效率等。还有一点,图像文件、文字需要转换为点阵cpp文件也不便管理。

GuiLite让我发现linux桌面开发还有个叫framebuffer的东西(linux应用较少,孤陋寡闻了),多阅读别人的东西,还是可以学到不少东西的,有区别于X和QT等桌面应用图形框架,framebuffer是把桌面当着画布来进行处理的。把显示器桌面内存挂接到/dev/fb0当中。

调试GuiLite linux程序时发生 open(“/dev/fb0”,ORDONLY) 提示无法打开文件的问题。

百度搜索:/dev/fb0: 没有这个设备

发现是vmware虚拟机当中,linux默认不打开此设备,需要设置一下。网上有很多解决方案,大概是需要修改/boot/grup/grup.conf文件。例如:https://blog.csdn.net/ztguang/article/details/5322431

 

2、qt windows版本下载

之前我对qt只是闻其名而从未接触过,听说文件挺大还不好安装,怕麻烦从未下载过。

这次探索式的进入qt的官网,英文的哈,硬着头皮看了一些,英语对一个真正的程序员来说多么重要,基本上所有最前沿的技术或者高级的用法都是英文文档的,基于linux后更有深刻的体会,比如opencv、ffmpeg、xmpp、openfire、zlib、mingw等官网都是英文的啊,外文论文,机器学习啥的,碰到的冷门问题等英文文档更多(为什么说程序员喜欢用google搜索)。

发现他有商业版(commercial)和开源版(open source),商业版的提供更多的功能支持,其实对普通用户来说没必要。试图进入了开源版的下载,提示要注册,据说qt有两个协议。注册后可以下载。

下载在线安装版本,运行后要选择安装版本,如下图,图片来自网络

开源跨平台窗口 GuiLite 和 QT 下载安装记录_第1张图片

才明白qt有creator 和编译方式开源选择。

开源跨平台窗口 GuiLite 和 QT 下载安装记录_第2张图片

Tools这个必要,上面的我选了msvc2015 32bit的(这个版本需要安装vs2015,我本来就有了,没安装的可以选择wingw等),其中还有mingw 和 android的。

然后进入Creator 创建项目。

Kits中配置编译器。

编译生成,发布的时候有个 deployqt.exe 程序能自动拷贝依赖dll到发布文件夹。Qt5.*版本后依赖dll分的更细了。里面有些国际化的内容,opengl d3d的内容可以直接删除,要是没用这些属性的话。最终压缩zip后,应用程序可以达到10M以内。

Qt开发还算是挺友好的,有qss布局,有个qtcreator也还算挺强大的。用惯vs或者android studio的来说,还是不太想换ide环境,可以配置vs+qt,比如下面地址:

https://blog.csdn.net/sinat_24206709/article/details/77185974 《MFC&Qt混合编程》 part1 MFC对话框中嵌入Qt窗口控件

网上大家对qt android版本的评论,其兼容性不是非常友好,跟原生窗口交互性差等问题。建议不适用qt来做android ios pc等跨平台开发。做嵌入式估计还是可以的吧。

https://blog.csdn.net/qyvlik/article/details/50989685   Qt for Android 开发大坑

https://blog.csdn.net/foruok/article/details/45676197   跨平台应用:Qt 对决 HTML5

 

同事介绍跨平台可以用 flutter,搜索了一下,发现那家伙是Google推出的,完美支持android和ios移动方面,未来还支持windows等其他操作系统。

Google还在默默的开发fushsia操作系统,替换了android的linux内核,用Zircon(锆石),更小,实时性跟高等,用于未来物联网,vr,mr等方面。期待吧。

20190109

你可能感兴趣的:(c/c++)