嵌入式系统设计与应用 课件 第九章与第十章 嵌入式系统高级应用.pptx

嵌入式系统设计与应用 课件 第九章与第十章 嵌入式系统高级应用.pptx

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

嵌入式系统设计与应用基于ARMCortex-A8和Linux

第九章与第十章

嵌入式系统高级应用

第九章与第十章嵌入式系统高级应用第九章、QT图形界面应用程序开发基础QT/QT和SQLite第十章、嵌入式数据库嵌入式数据库系统结构/SQLite关键技术VDBE/SQLite安装与接口测试

第9章QT图形界面应用程序开发基础

与普通GUI不同的是,嵌入式GUI的要求是轻量级的,如在嵌入式linux中使用的图形界面系统。同时嵌入式GUI还具有可定制,高可靠性,可裁减性等特点。嵌入式GUI的开发系统主要有XWindow、MiniGUI、OpenGL、Qt等。

按不同的版本发行:Qt商业版:提供给商业软件开发。它们提供传统商业软件发行版并且提供在协议有效期内的免费升级和技术支持服务。Qt开源版:仅仅为了开发自由和开放源码软件,提供了和商业版本同样的功能。GNU通用公共许可证下,它是免费的。2009年3月发布的Qt4.5起,诺基亚为Qt增添开源LGPL授权选择。

QtQt是一个跨平台应用程序和图形用户界面GUI开发框架。使用Qt只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。

信号与插槽机制信号和插槽用于两个对象之间的通信,信号和插槽(signal/slot)机制是Qt的核心特征,

信号和插槽在Qt程序中,利用信号(signal)和插槽(slot)机制进行对象间的通信signal和slot机制真正实现了封装的概念,slot除了接收signal之外和其它的成员函数没有什么不同,而且signal和slot之间也不是一一对应的。事件处理的方式也是回调当对象状态发生改变的时候,发出signal通知所有的slot接收signal,尽管它并不知道哪些函数定义了slot,而slot也同样不知道要接收怎样的signal

下面举例来说明信号/插槽机制。?#includeQObjectclassCounter:publicQObject{Q_OBJECTpublic:Counter(){m_value=0;}intvalue()const{returnm_value;}publicslots:voidsetValue(intvalue);signals:voidvalueChanged(intnewValue);private:intm_value;};在声明信号/插槽后,使用connect()函数将它们关联起来。Connect函数原型如下:boolQObject::connect(constQObject*sender,constchar*signal,constQObject*receiver,constchar*slot)[static]

下面给出一个例子予以说明。Countera,b;QObject::connect(a,Counter::valueChanged,b,Counter::setValue);a.setValue(18);//a.value()==18,b.value()==18b.setValue(42);//a.value()==18,b.value()==42

Counter类通过发射信号valueChanged来通知其他对象它的状态发生了变化,同时该类还具有一个插槽setValue,其他对象可以发信号给这个插槽。插槽setValue的定义如下:voidCounter::setValue(intvalue){if(value!=m_value){m_value=value;emitvalueChanged(value);}}

当信号与插槽没有必要继续保持关联时,用户可以使用disconnect()函数来断开连接。其定义如下所示:boolQObject::disconnect(constQObject*sender,constchar*signal,constObject*receiver,constchar*slot)[static]这个函数断开发射者中的信号与接收者中的插槽函数之间的关联。

9.4.1Helloworld程序新建一个helloworld项目,该项目使用的类信息中将基类选择为QDialog。项目构成如下图所示。图9-4helloworld项目构成

在源文件Main.cpp中输入源码,如下:#i

文档评论(0)

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

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

1亿VIP精品文档

相关文档