注:这是FLTK的PDF手册中第11章介绍FLUID编程的翻译,新手翻译很多不懂,错误之处,不吝提出,及时更改。翻译中不会翻译或者感觉不太明白的地方在每句之后使用【??】标记。
Chapter 11 使用FLUID编程
本章介绍怎样使用Fast Light User-Interface Designer(“FLUID”)创建你的图形用户界面(GUIs). 章节目录如下:
11.1 FLUID是什么
快速轻量用户界面设计器(FastLight User-Interface Designer)或者叫FLUID,是一个用来产生FLTK源代码的图形编辑器。FLUID编辑和保存它的状态在.fl文件中。这些文件是文本,所以你可以在文本编辑器中编辑它们(需要小心处理),可能会收到意想不到的效果。
FLUID能够编译.fl文件生成.cxx和.h文件。.cxx文件定义.fl文件中的所有的对象而.h文件声明所有的全局对象。FLUID也支持标签字符串的本地化(国际化)使用的是消息文件和GNU的gettext或者POSIX的catgets接口。【译注:这两个应该是程序本地化的工具】。
你可以将所有的代码(包括main()函数)都放进.fl文件中生成一个简单的程序,然后只生成一个用于编译的.cxx源文件。多数程序要比这复杂得多,所以你需要写其他的调用FLUID函数的cxx文件。这些cxx文件必须#include那些.h文件或者它们#include这些cxx文件所以它看起来仍然像一个单独的源文件。
图11.1 FLUID的组织结构图
一般FLUID文件定义一个或多个输出C++代码的函数或者类。每个函数定义一个或多个FLTK窗口以及在这些窗口中的所有图形构件。
FLUID创建的构件可以是“命名的(named)”,“复合命名的(complex named)”或者“未命名的(unnamed)”。一个命名的构件使用一个合法的C++变量标示符作为它的名字(也就是数字字母和下划线)。这种情况下FLUID在(程序中)调用定义构件的函数之后将定义一个指向该构件的全局变量或者类成员。一个复合命名对象在名字中有一个’.’或者’->’标点或者其他的符号,这种情况下FLUID将分配一个指向构件名字【??】的指针,但是并不尝试去声明它。这可用于将构件放入结构体中。一个未命名的构件有一个空的名字而且没有指针被保存。
构件可以调用一个你在另一个源文件中写得命名回调函数或者你可以提供一小段C++源码然后FLUID将其生成为一个私有回调函数放入cxx文件中。
11.2 UNIX下运行FLUID
要在UNIX下运行FLUID,输入:
Fluid filename.fl &
来编辑名字为filename.fl的fl文件。如果该文件不存在,将弹出一个错误,但是如果忽略你将可以编辑一个空的以那个名字命名的文件。你可以不通过名字运行FLUID,在这种情况下你可以编辑一个空的设置【??】,但是你可以使用另存为将其保存到文件中。
你可以在文件名字前使用(以下)任何标准的FLTK开关【选项】:
-display host:n.n
-geometry WxH+X+Y
-title windowtitle
-name classname
-iconic
-fg color
-bg color
-bg2 color
-scheme schemename
如果用户调用了颜色开关选项那么改变颜色来看看你的界面看起来如何可能是有用的。类似的,使用”-scheme plastic”将显示使用了”plastic”主题的界面显示看起来怎么样。
在当前版本中,如果你不使用’&’将FLUID作为后台运行,你可以使用在终端输入CTRL-C的方式退出FLUID。它将立即退出,丢失所有的修改。
11.3 在Windows下运行FLUID
要在Win32下运行FLUID,只需要双击FLUID.exe文件就可以了。你当然也可以通过命令提示符窗口启动。在Win32下FLUID是在后台运行的。
11.4 编译.fl文件
FLUID也可以被用作一个命令行“编译器“来从.fl文件生成.cxx和.h文件。要这样做,只要输入:
fluid –cfilename.fl
该命令将读filename.fl文件并且生成filename.cxx和filename.h文件。所有的filename.fl的前缀路径将被去除,所以它们(cxx和h)将被写入到当前目录下。如果读或者写文件时发生错误,FLUID将打印错误并且以非零退出码退出。你可以在makefile中使用下面的代码来自动化生成源文件和头文件:
my_panels.hmy_panels.cxx: my_panels.fl fluid –c my_panels.fl
大部分版本的make都支持编译.fl的规则:【??】
.SUFFIXES: .fl.cxx .h
.fl.h .fl.cxx:
fluid –c $<
11.5 一个简短的指南
FLUID是一个令人惊奇的功能强劲的小程序。然而这种功能是有代价的,那就是它不能完成看起来很简单的任务。该指南将介绍怎样使用FLUID生成一个在CubeView程序中使用的完整的用户界面类,该CubeView程序是由FLTK提供的。
图11.2 CubeView例子
这个窗口就是类CubeViewUI,包括所有的类函数在内,所有这些都是由FLUID生成的。立方体的显示中心是一个单独的叫做CubeView的Fl_Gl_Window的子类。CubeViewUI通过滑动块和滚轴的回调函数来控制CubeView类,从而实现CubeView的视角变换和缩放。
在本指南结束时,你将学到如下知识(希望如此):
1、使用FLUID创建一个完整的用户界面类,包括构造函数和任何需要的成员函数。
2、使用FLUID设置自定义构件类的回调成员函数。
3、子类化Fl_Gl_Window来满足你的需要。
分享到:
相关推荐
基于C++的轻量级UI设计库,由于它同时支持在Windows和Linux,所以对跨平台使用非常有用。
离线安装包,测试可用
离线安装包,亲测可用
fltk-draw-demo
FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit for UNIX®/Linux® (X11), ... FLTK also includes an excellent UI builder called FLUID that can be used to create applications in minutes.
FLTK手册的Chapter 11使用FLUID编程翻译,word手册
附件是FLTK 1.3.2的用书手册(FLTK Programming Manual)。内容均是摘自FLTK官网,但是官网是网页版,阅读标记不太方便,我将其制作成pdf浏览,在这给大家共享一下~~
收集了一些fltk入门的中文教程,还不错,里面还有一些例子,对初学者很有帮助
fltk是一个轻量级的图形库开发工具包,源码完全开安,可以根据自身的需要重新定制自己的界面控件。
fltk 2.0 source code
fltk-rs FLTK图形用户界面库的Rust绑定。 FLTK板条箱是一个跨平台的轻量级gui库,可以作为FLTK图形用户界面库的静态fltk-rs Rust绑定。 FLTK板条箱是一个跨平台的轻量级GUI库,可以将其静态链接以生成小型,独立(无...
这是大分子三维重建软件relion的基础运行包,有需要的可以下载
离线安装包,亲测可用
fltk-1.3.4-2 vs2010编译工程编译成功,可直接使用
fltk-rs FLTK图形用户界面库的Rust绑定。 FLTK板条箱是一个跨平台的轻量级gui库,可以静态链接以生成小型,自包含且快速的gui应用程序。 教程:Erco的FLTK作弊,这是出色的FLTK C ++参考。 为什么选择FLTK? 轻的。 ...
fluidd.exe //fltk的界面编程图形工具 include //头文件 lib //库文件 首先编译环境加入:include和lib目录,并加入需要的lib库文件fltkd.lib wsock32.lib comctl32.lib runtime labrary 要设置为:multi-...
一个跨平台界面开发包fltk(UNIX® /Linux® (X11), Microsoft® Windows® , and MacOS® X.)
fltk和vega联合编程的例子,fltk是一个跨平台界面包,vega是一个虚拟场景的渲染工具,fltk和vega相结合可实现具有丰富界面的跨平台的vega编程(自己开发)-fltk and Salmon joint programming examples fltk is a ...
fltk2.0源码 可以架设在Nano-X上,用来支持控件、按钮、文本框等
CHANGES IN FLTK 1.1.9 Improved color contrast in secondary selection blocks of Fl_Text_Display (STR #1917) Fixed regression in callback handling (STR #1918) Fixed wrong relative path when ...