开源跨平台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 可展示多种特性,包括皮肤功能。
开源跨平台GUI库Fltk在Deepin Linux下的使用_第1张图片
但字体效果不好:
开源跨平台GUI库Fltk在Deepin Linux下的使用_第2张图片
用于工控的界面如下,可能看上去有点寒碜,但如果加上自己设计的皮肤,就脱胎换骨啦!
开源跨平台GUI库Fltk在Deepin Linux下的使用_第3张图片
还有很多例子,都有源码和编译好的,都在同一目录(test)下,名为demo的例子是其他例子的总集成。

三、自编代码

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

#include 
#include 
#include 

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 程序。
开源跨平台GUI库Fltk在Deepin Linux下的使用_第4张图片
其他网友介绍链接:
Fltk入门
外国网友的入门翻译为汉语

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

未完待续…

你可能感兴趣的:(自动化控制,Linux,linux,ui,交互)