开源跨平台GUI库Fltk在Deepin Linux下的使用

Posted lissdd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源跨平台GUI库Fltk在Deepin Linux下的使用相关的知识,希望对你有一定的参考价值。

开源跨平台GUI库Fltk在Deepin Linux下的使用

前言

在互联网应用漫天的现在,实体企业、工厂却绕不开大量的桌面应用,开发工具有恐龙C#,有难用的MFC,也有没落的Delphi,还有新星QT。工业品怕被卡脖子,还是用全开源的吧!OS还是用咱们国产的Deepin Linux,GUI用C++版的Fltk,短小精悍、速度快、可定制性强,今天一测究竟。

一、下载安装

到官网 www.fltk.org 可以看到最新的稳定版,我下载的是fltk-1.3.7-source.tar.bz2,才4.4Mb.
解压到工作目录或主目录:

tar -xzvf fltk-1.3.7-source.tar.bz2

cd fltk-1.3.7/

进入其目录后,用configure配置, --help可以查看参数,如果安装过程中缺少某些库,比如xft,可以用参数不安装xft, 还可以选安装字符集支持cp936.

./configure --help
./configure --disable-xft --enable-cp936

如果缺少某些关键部分,比如X11, opengl等,configure的记录会提示你,用 sudo apt-get install xxx 补上。
如果顺利,接下来就是编译和安装。

make 
make install

二、样例使用

与其他开源库比较,Fltk自带的例子算很丰富了。在其目录的test目录下,有许多简单程序,都已经在make时编译好了,可直接运行。比如,输入 ./unittests 可展示多种特性,包括皮肤功能。

但字体效果不好:

用于工控的界面如下,可能看上去有点寒碜,但如果加上自己设计的皮肤,就脱胎换骨啦!

还有很多例子,都有源码和编译好的,都在同一目录(test)下,名为demo的例子是其他例子的总集成。

三、自编代码

为了不污染它的例子,在另外的目录下,自己写个Hello world:

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>

int main(int argc, char **argv) 
{
  Fl_Window *window = new Fl_Window(340,180);
  Fl_Box *box = new Fl_Box(20,40,300,100,"Hello, World!");
  box->box(FL_UP_BOX);
  box->labelfont(FL_BOLD+FL_ITALIC);
  box->labelsize(36);
  box->labeltype(FL_SHADOW_LABEL);
  window->end();
  window->show(argc, argv);
  return Fl::run();
}

如果按照网上的说法: g++ hello.cpp -lfltk -o hello 在早期版本可以,而现在编译参数太复杂了,如果不用cmake,就用它自带的工具fltk-config:

fltk-config --compile hello.cpp

就会生成可运行的 hello 程序。

其他网友介绍链接:
Fltk入门
外国网友的入门翻译为汉语

中文显示有问题,可以参考https://blog.csdn.net/u013591757/article/details/18909491
但我测试,中文没有显示

未完待续…

以上是关于开源跨平台GUI库Fltk在Deepin Linux下的使用的主要内容,如果未能解决你的问题,请参考以下文章

Gmsh 安装问题:无法启动 GUI(未找到 FLTK 库)和二进制安装弄乱了几何图形

带有 Visual Studio Code 的 FLTK 库

根据构建目标,在 fltk-rs 中使用 fltk::osxMenuBar 或 MenuBar

任何fltk gui集成编译器?

如何在 C++ 和 FLTK 中实现倒计时时钟?

Cygwin 中的 FLTK 应用程序:GUI 不显示?