首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FLTK编程模型(1)简介

FLTK编程模型(1)简介

FLTK功能简介1.        提供丰富的跨平台的GUI构件(Widget)。有按钮,菜单,窗口等,近六十个。
2.        支持OpenGL,提供Fl_GL_Window,支持OpenGL相关的操作。
3.        提供界面设计工具FLUID,非常方便进行界面的设计。
4.        良好的跨平台移植性。
5.        支持多种C++编译器,Gcc,BC,VC等等。
6.        灵活性。FLTK本身可以定制,以满足不同的需要。这使得FLTK在嵌入式开发上有着极大的竞争力,这正是我要推荐使用FLTK的原因。
本文就FLTK编程的一些基本方法进行介绍。
安装安装FLTK很简单,我们只需要下载它的源文件,解压缩到目录下,在Linux下我们只需要输入make,编译完成然后make install就头文件安装到/usr/include/FL目录下。库文件就在/usr/lib下,也可以自己编译之后把这些文件复制到这些目录,或者不需要复制,只在编译连接的时候指定路径。
在window下可以使用VC,BC打开相应目录下的工程文件编译即可。
FLTK构件简介FLTK作为GUI开发包,包含了常用的图形用户接口需要的一些构件,视觉表现非常丰富,如下两图所示:
常用按钮构件
按钮名称头文件按钮名称头文件Fl_ButtonFl_Button.HFl_Check_ButtonFl_Check_Button.HFl_Light_ButtonFl_Light_Button.HFl_Repeat_ButtonFl_Repeat_Button.HFl_Return_ButtonFl_Return_Button.HFl_Round_ButtonFl_Round_Button.H
对于具有Fl_Check_Button、Fl_Loght_Button和Fl_Round_Button当状态为off时value() =0 ,On时value()返回1。
处理按钮时间可以使用回调(callback)函数,参见后面的事件处理。
文本处理构件
构件名称头文件构件名称头文件Fl_InputFl_Input.HFl_OutputFl_Output.HFl_Multiline_InputFl_Multiline_Input.HFl_Multiline_outputFl_Multiline_output.H
设置和取得文本内容使用value();
如:
1
(new  Fl_Input(x,y,width,height,"Label"))->value("Hello World!");




其他构件
参见FLTK.org的 说明。      
这些构件是使用C++开发的,具有完善的继承关系,下面是构件继承关系图
构件使用例子-HelloWorld
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>
int  main (int argc, char *argv[])
{
    Fl_Window  *window;
    Fl_Box  *box;
window  =  new  Fl_Window (300, 180);
window-> label("HelloWorld!");   //添加window的标题
    box  =  new Fl_Box (20, 40, 260, 100, "Hello World!");
    box->box (FL_UP_BOX);
    box->labelsize (36);
    box->labelfont (FL_BOLD+FL_ITALIC);  //设置字体
box->labeltype (FL_SHADOW_LABEL);  //设置label的类型
/***************************************************************
进入FLTK的事件循环处理过程
***************************************************************/
    window->end ();
    window->show (argc, argv);
    return  Fl::run();
}




在window下程序编译运行后如图所示:[使用VC6编译优化后大小为116K]
Linux下图片[编译未优化大小358K]
返回列表