图形开发语言 工具
1、GTK+
GTK+基础
GTK+最初是GIMP的专用开发库,后来发展为Linux下开发图形界面的应用程序的主流开发工具之一。GTK+2.0是自由软件,并且是GNU工程的一部分。GTK+2.0的许可协议是LGPL。
GTK+使用C语言开发,但是其设计者使用面向对象技术。 在GNOME平台上提供了C++(gtkmm)、Perl、Ruby、Java和Python(PyGTK)绑定,其他的绑定有Ada、 D、 Haskell、PHP和所有的.NET编程语言。
与其他很多部件工具箱不同,GTK+并不基于Xt。这一决策优劣互见:优点是GTK+可以应用于其他系统,其灵活性也很强;而缺点就是它无法利用以传统方法为X11定制的X资源数据库。
Glade是一个界面设计工具,但是它也包含了一种描述GUI界面的XML语言,它和libglade一起工作就可以直接使用GTK和GNOME控件。
2、Qt
Qt简介
Qt是Trolltech公司的一个产品。非免费
Qt是一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且 允许真正地组件编程。
自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用 程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。
Qt支持下述平台: MS/Windows - 95、98、NT 4.0、ME、和2000
Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台
Macintosh - Mac OS X
Embedded - 有帧缓冲(framebuffer)支持的Linux平台。
2019年8月21日, Qt公司推出了Qt for MCUs
3、wxWidgets
wxWidgets原名wxWindows,是由Julian Smart于1992年还在英国爱丁堡大学人工智能应用研究所开始的一个项目。开源软件(LGPL),针对C++、Python以及Perl的跨平台GUI Library工具集。
详细介绍,参见细述https://www.wxwidgets.org/downloads/,由于他没有private属性,所以他里面的函数和变量你全都能继承下来,然后照着源代码进行修改和调整,最后变成自己针对性的控件. 反正, 在UI上没他办不到的.
绘图基础https://www.jianshu.com/p/6420be9dae01
例子https://www.cnblogs.com/hhh5460/p/4237766.html
python平台 https://wxpython.org/pages/overview/#hello-world
嵌入式图形解决方案:
第三方的嵌入式 GUI 软件包有 Qt、 μC/GUI、 miniGUI、 ZLG/GUI ,emwin,threadX。
Littlevgl(16位及以上单片机Flash大于64KB,RAM大于20KB)
同时GuiLite具有很强的跨平台特性:
- 支持的操作系统:iOS/macOS/WatchOS,Android,Linux(ARM/x86-64),Windows(包含VR),RTOS… 甚至无操作系统的单片机
- 支持的开发语言:C/C++, Swift, Java, Javascript, C#, Golang…
- 支持的第3方库:Qt, MFC, Winforms, CoCoa…
除此之外,GuiLite 提供一系列辅助开发工具:
- ☁️完美的“云” + “物联网”解决方案:让你轻松驾驭全球IoT业务
- 支持多语言,采用 UTF-8 编码;📀支持视频播放
- 资源制作工具为你定制自己的字体/图片资源
- 所见即所得的GUI布局工具
- 编译活跃度统计,及实时分析
- 支持3D & Web
- 支持Docker,一条命令启动
最新的 GuiLite 源码,已经是单头文件的形式(GuiLite.h),所以,如果要将其闭源,需要开发者自己从 GuiLite.h 中分离出类成员函数的实现部分(即 GuiLite.cpp),而仅仅保留声明的部分。编译库的时候,编译 GuiLite.cpp 即可;而在使用的时候,则向外提供仅包含声明的 GuiLite.h 文件
对于类似12864的可以用傻孩子的菜单框架
简单介绍:适用于单片机的带图形化编辑界面的解决方案。
移植要点:增大MCU堆的大小,由于LingLong GUI在创建GUI的时候需要利用堆来分配空间
VisualCom是一款国产电子元器件与模组仿真软件
ZLG开源 GUI开源 引擎 AWTK(针对嵌入式Linux):gitee地址
minigui:由魏永明先生于1998年底开始开发,后成立北京飞漫软件技术有限公司并提供开源版本,MiniGUI 4.0.2 版本中支持国产物联网操作系统 RT-Thread。
基于I2C接口的图形库:Tiny Graphics Library
Iced 是一个为 Rust 编程语言编写的跨平台 GUI 库,“专注于简单性和类型安全”。Iced 的设计思路受到了 Elm 语言的启发。Iced 工具包不仅适用于 Linux、macOS 和 Windows,还适用于 Web 应用程序.
基于ST7735和ST7789驱动芯片的小型彩色TFT显示器系列的图形库:Tiny TFT Graphics Library
参考文章:
1 基于STM32-GUI经验分享篇 。