- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GTK
Q AThanks! * Timeouts 参考代码examples/timeouts/ $cd ~/examples/timeouts/ $make 拷贝到开发板上运行 g_timeout_add(Timeinms,GSourceFunc,gpointer); * GIOChannel NetLink socket是一种用于在内核和用户空间进程之间传递信息的特殊IPC. 在Desktop上udev,hal等都使用他获取hot plug事件。在Android系统中vold(自动加载volume设备,sd卡)的daemon程序就使用netlink socket读取事件然后再做处理。 我们写一个例子使用GIOChannel来读取netlink socket中的事件。 例子在~/examples/giochannel/ $cd ~/examples/giochannel/ $make 在开发板上运行,在插拔usb设备时会有打印信息出现 思考问题:怎样使用GIOChannel读取触摸屏事件? * Glib的数据结构 链表,示例代码glistdemo 动态数组,示例代码garraydemo 哈希表,示例代码ghashdemo 树,示例代码gtreedemo * Agenda GTK+ 简介 GTK+的HelloWorld Glib编程简介 GTK+的Widget介绍 Valgrind使用介绍 项目管理和交叉编译介绍 * Packing widget 前面的例子在一个窗口中间只有一个Widget,这和复杂的GUI是有很大差别的,当一个窗口中含有多个控件的话就需要管理Widget之间的位置关系,也就是我们常说的布局。 $cd ~/example/packingdemo $make 在开发板上运行./packbox 1(有三个可选参数1,2,3) $cd ~/example/table * GtkLabel GtkLabel是用来向用户进行输出提示性文字的控件 示例代码在~/example/label $cd ~/example/label $make 在开发板上运行的效果,右边由于屏幕有部分没显示。 * GtkEventBox 由于GtkLabel没有窗口,不能接受事件,所以需要另外一个控件来接受事件进行做相应的处理 代码示例在~/example/eventbox 运行的结果如右图: * GtkRadioButton 示例代码在~/example/radiobuttons * GtkTreeView GtkTreeView的数据和数据在屏幕上的显示区分开来,这就是常说的MVC设计模式。数据通过model处理,数据的显示通过view来处理 Helloworld例子在~/example/hellotreeview * MVC架构 模型(Model)负责实现程序的具体功能,包括核心数据和逻辑处理 视图(View)负责向用户显示处理结果 控制器(Controller)接收用户的输入,然后调用模型的处理函数来进行处理,是用户界面的一部分。 MVC是多个设计模式的组合,比如控制器本身支持策略模式。视图和模型之间是观察者模式。 * GTK+的文档 /devel/gtk-tutorial/stable/book1.html /documentation.html 快速开发工具glade * Agenda GTK+ 简介 GTK+的HelloWorld Glib编程简介 GTK+的Widget介绍 Valgrind使用介绍 项目管理和交叉编译介绍 * * 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象 IOTek Information Tchnology IOTek Information Tchnology IOTek Information Tchnology * static void Main(string[ ] args) { Console.WriteLine(请输入一个字符串:); // 输入提示 // 从控制台读入字符串 string line = Console.ReadLine(); // 循环输出字符串中的字符 foreach (char c in line) { Console.WriteLine(c); } Console.ReadLine(); } static void Main(string[
文档评论(0)