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

article/2025/9/1 12:21:04

开源跨平台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.bz2cd 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 
sudo 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
但我测试,中文没有显示

折腾了许久,发现编译Fltk时,./configure 不要带其他参数,直接用默认值,因为Deepin Linux 已经把中文字体安装和配置好了。用以下指令就可以查看到哪些中文字体:

fc-list :lang=zh
fc-list | grep

把上面的hello.cpp中的文本换成中文如下:

  Fl_Box *box = new Fl_Box(20,40,300,100,"Hello, World!");

再编译运行,结果如下图:
在这里插入图片描述

四、后记

虽然自带的编译命令: fltk-config --compile hello.cpp可以,但对于稍微复杂的程序,比如用了opengl的程序,就不再适用。需要查看错误原因,并补上相关的库。比如:

#include <stdlib.h>
#include <FL/Fl.H>
#include <FL/gl.h>
#include <FL/Fl_Gl_Window.H>// fltk-config --compile hello.cpp 无法编译// 需要自己增加编译指令如下
/* g++ hello.cpp -I/usr/local/include -I/usr/local/include/FL/images -I/usr/local/include/freetype2 -I/usr/include/uuid -I/usr/include/libpng16 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT /usr/local/lib/libfltk.a -lXrender -lXcursor -lXfixes -lXext -lXft -lfontconfig -lXinerama -lpthread -ldl -lm -lX11 -lfltk_gl -lGL
*/
class MyWin: public Fl_Gl_Window
{void draw(){glLoadIdentity();glViewport(0, 0 , 400, 300);}public:MyWin(int x, int y, int w, int h, const char *L): Fl_Gl_Window(x, y, w, h){};
};
int main (int argc, char **argv)
{Fl_Window *window = new MyWin (100, 80, 640, 480, "mywindow 中文");window->end ();window->show (argc, argv);// Fl::set_idle(idle_cb);return Fl::run();
}

http://chatgpt.dhexx.cn/article/W2np9JUd.shtml

相关文章

Ubuntu安装FLTK详细过程

1.官网下载源码压缩包。版本建议最新&#xff0c;我这里的版本是1.3.8 2. 终端输入&#xff1a;sudo apt-get install build-essential xorg-dev libx11-dev libcairo2-dev //此步骤必要&#xff01;&#xff01;&#xff01;安装依赖库&#xff0c;不然后面安装总会出错&#…

[Rust GUI]fltk-rs的helloworld

1、安装VSCode 下载安装VSCode 安装VSCode扩展 rust-analyzer或rust-analyzer(CN) 2、安装Microsoft C 生成工具 访问微软官网下载生成工具&#xff0c;勾选使用 C 的桌面开发之后会自动勾选5个项目 取消勾选以下项目 用于 Windows 的 C CMake 工具 测试工具核心功能 - 生成…

使用CLion配置第一个FLTK界面

文章目录 写在前面安装与配置安装helloworld配置命令行配置CLion 运行结果 写在前面 假期抽时间学习一下跨平台GUI界面的开发, 正好也当做C的练手小项目了. C标准库中没有对于GUI的支持, 需要依赖三方库, 这里我先想到的是老牌跨平台GUI——Qt, 但是作为一个小项目感觉使用Qt有…

FLTK-Rs 2

Trees 树形结构&#xff0c;允许在树中显示项目&#xff0c;使用add方法发添加条目 use fltk::{prelude::*, *}; use fltk::enums::FrameType;fn main() {let a celet mut win window::Window::default().with_size(400, 300);let mut tree tree::Tree::new(5,5,390,290,&…

FLTK的UI设计工具FLUID使用方法总结

tags: FLTK C GUI 写在前面 终于又捡起来FLTK了, 先来看看怎么通过FLUID创建一个图形界面并完成回调函数的创建, 参考的是官方教程中关于创建一个CubeView程序的例子, 教程里面很多都与最新版本的FLTK界面不太一致, 但是通过我的摸索还是找出了方法. 下面来分享一下. 创建类…

fltk和glog在mac下的安装与编译

glog 根据官方文档安装即可 https://github.com/google/glog % git clone https://github.com/google/glog.git % cd glog % cmake -S . -B build -G "Unix Makefiles" //这句含义未知 % cmake --build build安装完后可以去/usr/local目录下查看是否有对应的头文件…

c语言fltk图形库,FLTK编程模型

2003 年 5 月 10 日 FLTK(Fast Light Tool Kit 发音为fulltick) 是一种使用C++开发的GUI工具包,它可以应用于Unix,Linux,MS-Windows95/98/NT/2000和MacOS操作系统平台,相对于其它的许多图形接口开发工具包(如MFC、GTK、QT等),它具有体积很小、速度比较快,且有着更好的移植性…

FLTK-Rs

终于还是到这一步了&#xff0c;可视化&#xff0c;我的超人&#xff01; FLTK是一个跨平台的轻量级 gui 库。该库本身是用 C98 编写的&#xff0c;具有很高的可移植性。fltk crate 是用 Rust 编写的&#xff0c;并使用 FFI 调用 FLTK 包装器cfltk&#xff0c;它是用 C89 和 C…

Visual Studio 安装 FLTK

Visual Studio 安装 FLTK 环境介绍 Windows 10Visual Studio Community 2019 (2021-11-29补充2022版)FLTK-1.3.7 下载与解压 ​ 进入FLTK官网-Download下载最新版本。 ​ 解压到D:\Program Files\fltk(解压路径任意都行)&#xff0c;推荐使用Bandzip免费解压工具。 编译 …

FLTK--轻量级C++跨平台GUI库

FLTK FLTK&#xff08;Fast Light Toolkit&#xff09;是一个跨平台的CGUI工具集&#xff0c;用在UNIX/Linux&#xff08;X11&#xff09;、微软Windows和Mac OS X上。FLTK提供现代的GUI功能&#xff0c;除却膨胀&#xff0c;通过OpenGL和内建的GLUT模拟器提供3D图形支持。最初…

浅谈如何fltk项目编译和实现显示中文

目录 一、编译 二、中文显示如何处理&#xff1a; 2.1在发文2天前突然发现&#xff0c;我这个界面显示英文出现问题了&#xff0c;开始我的搜索之旅&#xff0c;一些参考页面有碰到问题也可以看看&#xff1a; 2.2、 那就开始翻翻官方自带的例程吧&#xff0c;看看他如何显…

FLTK 学习一:简介和安装

文章目录 FLTK 简介FLTK 安装FLTK Windows安装FLTK Linux 安装 FLTK 简单示例参考资料 FLTK 简介 从网上引用的一段 FLTK 的介绍 FLTK (Fast Light Tool Kit 发音为fulltick) 是一种使用 C 开发的 GUI 工具包&#xff0c;它可以应用于 Unix, Linux, MS-Windows95/98/NT/2000 和…

安装使用FLTK图形库

FLTK是Fast Light Toolkit的简称&#xff0c;是一个跨平台的C GUI包&#xff0c;FLTK提供xiandai GUI功能&#xff0c;而且通过OpenGL支持3D图像。 下载FLTK安转包fltk-1.3.4-1-source.tar.gz&#xff1a; http://www.fltk.org/software.php?VERSION1.3.4&FILEfltk/1.3.…

BOBCAT: 基于双层优化的计算机化自适应测验(超硬核解读论文+阅读论文技巧)

文章目录 前言AbstractIntroductionCAT 介绍传统的认知诊断模型传统的CAT选题策略传统方法局限性 ContributionsBOBCAT框架双层优化问题BOBCAT框架BOBCAT 训练过程 OptimizationExperiments能力评估问题暴露和内容重叠问题选择 Conclusions 前言 大家好&#xff0c;我是小曾&a…

项目管理理论与实践(3)——如何进行有效的项目管理

对于具有成功并有效的项目管理经验的项目经理&#xff0c;还是非常难得的。因为项目管理并不是一件很简单的事情。虽然自己对于项目管理的理解还是处于初级阶段&#xff0c;但是利用自己学习到的理论知识&#xff0c;还是想做一次归纳&#xff0c;希望对大家能够受用。那么就开…

计算机自适应考试技巧,计算机自适应题库实现

在软件的开发中,基于题库的计算机自适应考试已成为一个重要的发展方向,而计算机自适应题库的建立就显得尤为重要。计算机自适应测验(Computerized Adaptive Testing,简称CAT)是近年来发展起来的一种新的测验形式。这种测验以项目反应理论为基础,以计算机技术为手段,在题库…

项目经理都会面临什么问题?

最近手里一个项目接近尾声&#xff0c;还有一个项目正在初期调研&#xff0c;无缝衔接&#xff0c;原定结项之后的3天假期也泡汤了&#xff0c;每一个环节都出问题我真的会心累&#xff0c;再加上最近组里人事变动&#xff0c;也没有及时做好复盘&#xff0c;客户又出现了临时需…

反应-扩散方程(Reaction-diffusion system)

文章目录 1. 单组分反应-扩散方程2. 双组分反应-扩散方程3. 三组分和更多组分的反应-扩散方程4. Fishers equation4.1 KPP方程 5. Belousov–Zhabotinsky reaction5.1 历史5.2 化学机理5.2.1 变体 5.3 Noise-induced order5.3.1 数学背景 6. Briggs–Rauscher reaction7. ZFK e…

项目延期的因素有哪些?项目经理应该如何应对

项目延期是项目管理中常见的问题之一&#xff0c;也是管理者最头疼的问题。项目延期的出现可能是由于以下原因&#xff1a; 1、工作中突发事件多&#xff1a;在评估工作量时&#xff0c;通常会基于过往的经验来进行评估&#xff0c;但由于信息社会中各种信息随处可见&#xf…

项目管理中影响项目进度的原因及解决方法

项目管理中对工期的控制主要是进度控制&#xff0c;在项目进行过程中&#xff0c;由于项目时间跨度长&#xff0c;人员繁杂&#xff0c;如果管理不规范&#xff0c;就容易导致项目进度滞后&#xff0c;如何管理好施工进度是管理者需要解决的问题之一。 1、项目计划缺乏执行力…