资源预览内容
第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
第9页 / 共23页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第一章第一章 FLTK 编程模型编程模型 1.1 FLTK 功能简介 1.2 搭建 FLTK 开发环境 1.21 windows 下搭建 FLTK 开发环境 1.22 ubuntu 下搭建 FLTK 开发环境 1.3FLTK 构件简介 1.4FLTK 事件处理 1.5FLTK 消息处理 1.6OpenGL 编程第二章第二章 常用的控件和属性常用的控件和属性 2.1 按钮 2.2 文本 2.3 颜色 2.4 Box 类型第三章第三章 FLTK 的画图函数的画图函数 3.1 何时可以画图 3.2 FLTK 的画图函数 3.3 剪切 3.4 颜色 3.5 设置线条的属性 3.6 画一般的图形函数 3.7 画封闭的线,一次连接个顶点 3.8 画三边形或四边形,并填充内部 3.9 复杂图形函数 3.10 字体 3.11 覆盖画图函数第四章第四章 在在 FLTK 中自定义控件中自定义控件 4.1 定制图形控件说明 4.2 如何开发一个控件的子类 4.3 处理事件 4.4 画控件第一章:第一章:FLTK 编程模型编程模型FLTK(Fast Light Tool Kit 发音为 fulltick) 是一种使用 C+开发的 GUI 工具包,它可以应用 于 Unix,Linux,MS-Windows95/98/NT/2000 和 MacOS 操作系统平台,相对于其它的许多图 形接口开发工具包(如 MFC、GTK、QT 等) ,它具有体积很小、速度比较快,且有着更好 的移植性。FLTK(Fast Light Tool Kit 发音为 fulltick) 是一种使用 C+开发的 GUI 工具包, 它可以应用于 Unix,Linux,MS-Windows95/98/NT/2000 和 MacOS 操作系统平台,相对于 其它的许多图形接口开发工具包(如 MFC、GTK、QT 等) ,它具有体积很小、速度比较快,且有着更好的移植性。本文就 FLTK 编程的一些基本方法进行介绍。 1.1FLTK 功能简介功能简介 (1)提供丰富的跨平台的 GUI 构件(Widget)。有按钮,菜单,窗口等,近六十个。(2)支持 OpenGL,提供 Fl_GL_Window,支持 OpenGL 相关的操作。(3)提供界面设计工具 FLUID,非常方便进行界面的设计。(4)良好的跨平台移植性。(5)支持多种 C+编译器,Gcc,BC,VC 等等。(6)灵活性。FLTK 本身可以定制,以满足不同的需要。这使得 FLTK 在嵌入式开发上有着 极大的竞争力,这正是我要推荐使用 FLTK 的原因。 本文就 FLTK 编程的一些基本方法进行介绍.1.2 搭建搭建 FLTK 开发环境开发环境 安装 FLTK 很简单,我们只需要下载它的源文件,解压缩到目录下,在 Linux 下我们只需 要输入 make,编译完成然后 make install 就头文件安装到/usr/include/FL 目录下。库文件就 在/usr/lib 下,也可以自己编译之后把这些文件复制到这些目录,或者不需要复制,只在编 译连接的时候指定路径。在 window 下可以使用 VC,BC 打开相应目录下的工程文件编译 即可。1.21 windows 下搭建下搭建 FLTK 开发环境开发环境 第一步:下载 FLTK 源码包 FLTK 官网:http:/www.fltk.org/ 下载后解压缩到 C 盘根目录下,命名为 FLTK 进到 C:FLTKidevisualc 目录下,找到 fltk.dsw 用 Visual C+6.0 打开项目,然后选择【组建】全部重建,就开始编译了 编译完成后关闭 Visual C+6.0第二步:添加 FTLK 库文件 (1)重新打开 Visual C+6.0, 新建一个 Win32 Application 项目,命名为 FLTK,然后再新建一 个 hello.cxx 文件(2)建立好之后选择【工程】-【设置】选择“连接”选项卡“分类”下拉框选择输入, 在对象/库模块添加: fltkd.lib fltkgld.lib comctl32.lib wsock32.lib opengl32.lib glu32.lib 还要在忽略库中添加:LIBCD libcd.lib(3)之后选择“C/C+“选项卡,“分类”下拉框选择:code generation, 在“use run-time library“ 中选择”Multi-threaded DLL“ 最后确定。(4)选择【工具】【选项】-“目录“选项卡 在”目录“下拉框中选择“Include Files“ 然后新增一项 C:FLTK(导入头文件)(5)在“目录“下拉框中选择“Library Files”然后新增一项 C:FLTK (导入类库)(6)编译运行 hello.cxx1.22 ubuntu 下搭建下搭建 FLTK 开发环境开发环境 第一步:配置基础开发环境 GCC xhyxhy-desktop:$sudo apt-get install build-essential第二步:安装 QT 开发环境 xhyxhy-desktop:$sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4- designer第三步:下载 FLTK 源码包 FLTK 官网:http:/www.fltk.org/ 下载后解压缩: xhyxhy-desktop:$sudo tar zxvf FLTK.tar.gz第四步:编译安装 FLTK xhyxhy-desktop:$cd FLTK xhyxhy-desktop:$make xhyxhy-desktop:$sudo make install第五步:测试环境 写一个简单的 FLTK 程序 #include #include #include int main(int argc, char *argv) Fl_Window *window = new Fl_Window(300,180);Fl_Box *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);window-end();window-show(argc, argv);return Fl:run(); 包含了需要的头文件后,该程序创建了一个窗口 Fl_Window *window = new Fl_Window(300,180); 还创建了一个 box 类,标签是“Hello World!” Fl_Box *box = new Fl_Box(20,40,260,100,“Hello, World!“); 下一步,我们设置了 box 的类型,大小,字体和标签的类型 box-box(FL_UP_BOX); box-labelsize(36);1.3FLTK 构件简介构件简介 FLTK 作为 GUI 开发包,包含了常用的图形用户接口需要的一些构件,视觉表现非常丰富, 如下两图所示:常用按钮构件 按钮名称头文件按钮名称头文件Fl_ButtonFl_Button.HFl_Check_Butto nFl_Check_Button. HFl_Light_Button Fl_Light_Button.HFl_Repeat_Butt onFl_Repeat_Button. HFl_Return_Butto nFl_Return_Button. HFl_Round_Butto nFl_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_Inp utFl_Multiline_Input .HFl_Multiline_outp utFl_Multiline_output .H设置和取得文本内容使用 value(); 如:(new Fl_Input(x,y,width,height,“Label“)-value(“Hello World!“);其他构件参见 FLTK.org 的 文档说明。写一个简单的 FLTK 程序#include #include #include int main(int argc, char *argv) Fl_Window *window = new Fl_Window(300,180);Fl_Box *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);window-end();window-show(argc, argv);return Fl:run();包含了需要的头文件后,该程序创建了一个窗口Fl_Window *window = new Fl_Window(300,180);还创建了一个 box 类,标签是“Hello World!”Fl_Box *box = new Fl_Box(20,40,260,100,“Hello, World!“);下一步,我们设置了 box 的类型,大小,字体和标签的类型box-box(FL_UP_BOX);box-labelsize(36);box-labelfont(FL_BOLD+FL_ITALIC);box-labeltype(FL_SHADOW_LABEL);最后,我们显示该窗口并进入 FLTK 事件循环window-end();window-show(argc, argv);return Fl:run();运行该程序得到的界面如下,你能直接关闭该窗口退出,也可以按 ESC 键退出1.4FLTK 事件处理事件处理 对于一般构件的如按钮,菜单等常用事件的处理一般可以使用回调函数实现,回调函数的 原型是: void XXX_callback( Fl_Widget *w,void *data ) /添加自己处理的内容 使用 F1_Widget-callback( XXX_callback, data) 注册回调函数/* 按钮事件例子 */ #include #include #include #include void Btn01_cb(Fl_Widget *w, void *data) (Fl_Button *)w)-label(char *)data); fl_alert(“Hello“); int main(int argc, char *argv) char *buff =“Hello“;Fl_Window* w = new Fl_Window(272, 144);Fl_Button* Btn01 = new Fl_Button(85, 50,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号