## 1.3FLTK构件简介
FLTK作为GUI开发包,包含了常用的图形用户接口需要的一些构件,视觉表现非常丰富,如下两图所示:
![](https://box.kancloud.cn/2016-01-09_5690737db50b4.png)
![](https://box.kancloud.cn/2016-01-09_5690737ddc9e4.png)
常用按钮构件
| 按钮名称 | 头文件 | 按钮名称 | 头文件 |
| --- | --- | --- | --- |
| Fl_Button | Fl_Button.H | Fl_Check_Button | Fl_Check_Button.H |
| Fl_Light_Button | Fl_Light_Button.H | Fl_Repeat_Button | Fl_Repeat_Button.H |
| Fl_Return_Button | Fl_Return_Button.H | Fl_Round_Button | Fl_Round_Button.H |
对于具有Fl_Check_Button、Fl_Loght_Button和Fl_Round_Button当状态为off时value() =0 ,On时value()返回1。
处理按钮时间可以使用回调(callback)函数,参见后面的事件处理。
文本处理构件
| 构件名称 | 头文件 | 构件名称 | 头文件 |
| --- | --- | --- | --- |
| Fl_Input | Fl_Input.H | Fl_Output | Fl_Output.H |
| Fl_Multiline_Input | Fl_Multiline_Input.H | Fl_Multiline_output | Fl_Multiline_output.H |
设置和取得文本内容使用value();
如:
```
(new Fl_Input(x,y,width,height,"Label"))->value("Hello World!");
```
其他构件参见FLTK.org的 文档说明。
写一个简单的FLTK程序
```
#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(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键退出
![](https://box.kancloud.cn/2016-01-09_5690737f0acd3.png)
- 第一章:FLTK编程模型
- 1.1FLTK功能简介
- 1.2搭建FLTK开发环境
- 1.3FLTK构件简介
- 1.4FLTK事件处理
- 1.5FLTK消息处理
- 1.6OpenGL编程
- 第二章:常用的控件和属性
- 2.1按钮
- 2.2文本
- 2.3颜色
- 2.4Box类型
- 第三章: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画控件