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();}
 intpixmapID(){return15;}                                                                                                                                            
};
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控件了,使用方法与其他控件一样。

如何在fluid中添加自定义控件相关推荐

  1. 如何在SharePoint2010中添加Deep Zoom Image

    如何在SharePoint2010中添加Deep Zoom Image 应用范围 SharePoint 2010 Foundation:SharePoint 2010 Standard:SharePo ...

  2. 怎样在计算机上插入机构图,Win7系统如何在excel中添加word文档结构图?

    今天小编给大家分享 Ghost Win7系统 在excel中添加word文档结构图的方法,有时候在编辑excel表格时,为了数据能够更加直观展示,会在excel中添加word文档结构图,这样显示的内容 ...

  3. java soap 头_如何在Java中添加Soap标头

    我有一个来自oracle的NO.net Web服务,要访问,我需要添加soap标头.如何在Java中添加soap标头? Authenticator.setDefault(new ProxyAuthen ...

  4. 如何在Eclipse中添加Servlet-api.jar的方法

    方法一: 点击窗口->首选项->java->构建路径->类路径变量->新建: 将你的tomcat目录下的common/lib/servlet.jar加进来. 如果你建立了 ...

  5. Android 驱动(17)---如何在linux中添加新的kernel module

    如何在linux中添加新的kernel module 该SOP针对客户如何添加一个kernel module,并把生成的.ko打包进system.img的过程. 解决方案 L版本(version> ...

  6. linux 添加新的系统调用,如何在Linux中添加新的系统调用

    如何在Linux中添加新的系统调用 2010-01-29 eNet&Ciweek #define __NR_mycall 191 系统调用号为191,之所以系统调用号是191,是因为Linux ...

  7. 双系统如何在Centos7中添加GRUB2启动项

    GRUB2是Centos7的默认引导加载程序.它可以轻松地加载所有的Linux发行版和其他操作系统.它提供一个菜单显示所有的操作系统.GRUB2具有高级特性以及一些基本特性,使其在所有Linux上都有 ...

  8. wordpress 背景_如何在WordPress中添加全屏背景图片

    wordpress 背景 Full screen background image seems to be a new design trend that is becoming fashionabl ...

  9. wordpress图像大小_如何在WordPress中添加图像积分(逐步操作)

    wordpress图像大小 Recently, some of our readers asked us about how to properly add image credits in Word ...

最新文章

  1. 微软29岁员工年薪税后85W!竟然说自己活得很惨!网友:确实挺惨!
  2. 2021-02-23 Matlab数据导入--importdata和load函数
  3. Vue + Element UI——搜索框DEMO
  4. 汉诺塔V - ACM解决方法
  5. thinkphp 响应
  6. 苹果手机与安坐手机input输入框ios 会有灰色背景解决方法
  7. 推荐三个不错的开源项目
  8. python int函数 向上取整_【Python小课】 print()函数
  9. 黑马程序员——OC学习笔记—— Copy
  10. 100道MySQL面试题及答案
  11. 《死亡诗社》影评(作业)
  12. redis setex和set 的区别
  13. 手机端酒店机票预订页面HTMLcss3+html5模板
  14. 华为鸿蒙系统让国产手机用,鸿蒙系统不支持华为手机 系统还是国产手机的命门...
  15. BERT-QE:用于文档Rerank的上下文化查询扩展模型
  16. 【Celery】Celery的简易部署和应用
  17. 训练集、验证集以及测试集的区别
  18. Mysql偶尔连接失败的问题
  19. 统计数据集图片通道的像素均值和方差
  20. gh-ost大表DDL工具源码阅读

热门文章

  1. 源自KPI交谈的思考
  2. 跟着iMX28x开发套件学linux-02
  3. exsi主机之间使用scp拷贝文件超时问题
  4. [国嵌攻略][080][无名管道通讯]
  5. “挨踢民工”的奇葩生活录
  6. HDU ACM 4031 Attack (树状数组--单点查询+区间更新)
  7. IIS7整合Tomcat6
  8. 读取Excel表格数据到DataGridView中
  9. 电量检测芯片BQ27510使用心得
  10. ppi 各代iphone_算算你的手机 高PPI屏幕显示强机推荐