网站大量收购独家精品文档,联系QQ:2885784924

课件fltk-nanox全解.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课件fltk-nanox全解

其他gui介绍 1、MFC 大名鼎鼎的微软基础类库(Microsoft Foundation Class)。大凡学过VC++的人都应该知道这个库。虽然从技术角度讲,MFC是不大漂亮的,但是它构建于Windows API 之上,能够使程序员的工作更容易,编程效率高,减少了大量在建立 Windows 程序时必须编写的代码,同时它还提供了所有一般 C++ 编程的优点,例如继承和封装。MFC 编写的程序在各个版本的Windows操作系统上是可移植的,例如,在Windows 3.1下编写的代码可以很容易地移植到 Windows NT 或 Windows 95 上。但是在最近发展以及官方支持上日渐势微。 2、QT Qt是Trolltech公司(已被NOKIA收购) 的一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt 是完全面向对象的很容易扩展,并且允许真正地组件编程。自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。 Qt也是流行的Linux桌面环境KDE 的基础,同时它还支持Windows、Macintosh、Unix/X11等多种平台。 3、WxWindows 跨 平台的GUI库。因为其类层次极像MFC,所以有文章介绍从MFC到WxWindows的代码移植以实现跨平台的功能。通过多年的开发也是一个日趋完善的 GUI库,支持同样不弱于前面两个库。并且是完全开放源代码的。新近的C++ Builder X的GUI设计器就是基于这个库的。 4、Fox 开放源代码的GUI库。作者从自己亲身的开发经验中得出了一个理想的GUI库应该是什么样子的感受出发,从而开始了对这个库的开发。有兴趣的可以尝试一下。 5、WTL 基于ATL的一个库。因为使用了大量ATL的轻量级手法,模板等技术,在代码尺寸,以及速度优化方面做得非常到位。主要面向的使用群体是开发COM轻量级供网络下载的可视化控件的开发者。 6、GTK GTK是一个大名鼎鼎的C的开源GUI库。在Linux世界中有Gnome这样的杀手应用。而Qt就是这个库的C++封装版本。 Fltk重绘过程 1,当有事件发送过来,fltk接收处理后,将相应的触发事件的widget设置重绘标志位。 2,fltk回到事件循环中,检查标志位,若被置位,则调用相应window的flush()函数。 3,fltk查询window内组内的所有成员,检查其标志位,决定是否调用相应的draw()。 4,最后,触发的widget的draw()被调用。 界面设计演示 编写第一个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(); } Fltk中的事件callback() 所有的fltk控件,即Fl_Widget类及其派生类,都会有callback函数。 Fl_Widget a; a.callback(fun1,data); 它的用法是传一个函数指针进去,当该控件的value()变更时,便会跳转到函数中运行。 Fltk中的label Label即是控件的显示出来的字串,Fl_Widget类及其派生类中可以调用label(char *)来更改label中的字串。 Fl_Widget a; a.label(“Hello”); 但是要注意的是,label并不会保存任何字串,所以char *指针必须指向非局部变量的字串。 Fltk中的组 Fltk中的组即是一个逻辑上的概念,它用来记录控件之间的父子关系,它与c++中的继承派生关系不同。 当一个父控件要被释放的时候,它会查询所有的子控件,逐一将其释放,然后再释放自己,所以我们只要设置了其组关系,就可以不用考虑其释放问题。 用法: Fl_Group a; a.begin(); … … … a.end(); Fltk中的handle() 虽然,Fltk提供

文档评论(0)

ee88870 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档