如何在fluid中添加自定义控件

 
fluid 中已经有它自己自带的控件,那如何让我们自定义的控件放到 fluid 中呢,这里有两种方法,一种是修改 fluid 代码,一种是以另外的控件来代替自定义的控件,只是在代替控件属性的 class 选项下填写自定义控件的类名,这种方式优点是添加方便,缺点是不能所得即所见。另一种方式就是修改 fluid 的代码,让自定义控件像 fltk 自带的控件一样使用,下面就介绍如何通过修改 fluid 代码,添加自定义的控件。
以下以 Fl_Lcdnumber 控件为例。
 
第一步:首先需要在 fltk 的库中添加该控件
Fl_Lcdnumber.H 保存在 FL 目录下
Fl_Lcdnumber.cxx 保存在 src 目录下
修改 src->Makefile 文件,将 Fl_Lcdnumber.cxx 添加到 makefile 文件中,在 src 目录下运行 make, 重新编译 fltk 库。
 
第二步:在 function_panel.fl 增加一个按钮,修改相关属性,与其他控件的属性一样,不同的是在属性面板的 C++ user_data 框中的写上“ Fl_Lcdnumber
这一步的目的是在控件面板中增加该控件的选项,点击这个控件的按钮后在窗口中就会出现这个控件。
 
  第三步:将控件添加到 fluid new 菜单
factory.cxx 中定义 class Fl_Lcdnumber_type ,内容如下:
#include<FL/Fl_Lcdnumber.H>
class Fl_Lcdnumber_Type:public Fl_Widget_Type {
public:
   virtual const char *type_name(){return "Fl_Lcdnumber";}
   Fl_Widget *widget(int x, int y,int w,int h){
 return new Fl_Lcdnumber(x,y,w,h);}
 Fl_Widget_Type *_make(){return new Fl_Lcdnumber_Type();}
 int pixmapID(){return 15;}                                                                                                                                            
};
static Fl_Lcdnumber_Type Fl_Lcdnumber_type;
 
factory.cxx New Menu[] 中添加以下两行
{"coustom widget",0,0,0,FL_SUBMENU},
{0,0,cb,(void*)&Fl_Lcdnumber_type},
  第四步:重新编译 fluid
   fluid 目录下运行 make, 编译 fluid ,重新打开 fluid 后就可以看到在控件面板中和 new 菜单中有 Fl_Lcdnumber 控件了,使用方法与其他控件一样。
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值