[software development] FLTK ,轻量的C++ gui库,C++之父也推荐图形界面入门开发者学习
Tofloor
poster avatar
deepin
2024-11-10 23:25
Author

deepin桌面系统现在的应用开发环境,其DTK框架底层依赖现有的Qt库,包括后期的鸿蒙PC应用也很有可能会基于Qt库。

尽管Qt库在软件产品功能上比较完善、很多硬件驱动支持也很完善,但有些桌面操作系统领域实际上也需要更轻量的GUI库或GUI框架。比如,嵌入式领域一些硬件希望软件容量更小、界面交互更简单,那么用Qt明显就有点浪费了,可以选择类似C++编程语言实现的GUI库-FLTK,这个库不仅开源,现在也支持wayland相关协议,并且采用cmake工具来管理项目。

我展示下自己的FLTK项目简单实现流程:

1.在github官网下载FLTK开源压缩包;

image.png

不太建议初学者在系统终端通过命令方式进行安装,终端命令的安装方式会在系统默认路径,如果你不熟悉其存放路径,后期想删除其文件,查找也比较繁琐。

image.png

2.进入FLTK开源文件目录,创建build文件夹,通过cmake、make命令编译出源文件。

image.png

在fltk_master目录中创建build目录,并进入build目录执行cmake、make编译,如下图:

image.png

3.复制源码到自己的项目中,并运行。

image.png

如上图,你可以把build目录中的子目录lib里面相关的源码包复制,粘贴到自己新建的项目文件夹中,如下图:

image.png

然后在继续把fltk_master目录中的FL目录所有头文件继续复制到自己的项目中,如下图:

image.png

image.png

最后,根据自己设定的项目路径和结构,通过GCC或clang编译器去编译自己的项目代码,并运行,如下图:

image.png

image.png

【FLTK gui库相关官方文档链接:】

FLTK 1.4.0官方文档

Reply Favorite View the author
All Replies
小鱼贝壳
deepin
2024-11-10 23:31
#1

applaud applaud 感谢分享

Reply View the author
deepin
2024-11-10 23:34
#2
小鱼贝壳

applaud applaud 感谢分享

希望Deepin IDE也能为其提供UI设计类,这样FLTK的View编写会更简单

Reply View the author
Oli
deepin
2024-11-11 00:14
#3

不错不错

Reply View the author
把一切操作变成GUI
deepin
Backbone of ecological co-construction group
2024-11-11 12:00
#4

这个工具轻量的确是轻量,运行起来也是快。

不过就是需要的控件需要自己重绘了。

Reply View the author
deepin
2024-11-11 12:15
#5
把一切操作变成GUI

这个工具轻量的确是轻量,运行起来也是快。

不过就是需要的控件需要自己重绘了。

是的

Reply View the author
马小松
deepin
2024-11-11 14:03
#6

补充一下,要装下面这些库,否则有可能cmake失败:

# 安装gcc/g++等核心开发构建工具和库(必备)
sudo apt-get install build-essential
# openGL库安装(可选,建议。OpenGL的Library、Utilities以及ToolKit)
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install freeglut3-dev
# openSSL库(可选)
sudo apt-get install libssl-dev
# x11库(必备)
sudo apt-get install libx11-dev

FLTK基于cmake编译以及使用(Windows、macOS以及Linux)-腾讯云开发者社区-腾讯云

上面的网址是信息来源。


补充,在Linux下,如果使用X11,编译时需要加入-lX11参数,取代的是下面这部分。

image.png

另外clang++可以换成g++。

还有就是编译后,build文件夹里的FL里的fl_config.h头文件也要复制到项目里。

image.png

Reply View the author