第九篇 Qt图形编程_2.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式应用程序设计 第九章 Qt图形编程 习题 Qt/Embedded中信号和槽的概念分别是什么? 信号与槽的如何连接的? Qt/Embedded中信号和槽的概念分别是什么? 答:信号(signal)和槽(slot)是一种高级接口,应用于对象之间的通信,它是QT的核心特性,也是QT区别于其它工具包的重要地方。 当对象改变其状态时,信号就由该对象发射(emit)出去,这就是对象所要做的全部事情,对象并不知道另一端是谁在接收这个信号。这是真正的信息封装,它确保对象被当作一个真正的软件组件来使用。 槽用于接收信号,但它们是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且,对象并不了解具体的通信机制。 信号与槽的如何连接的? 信号与槽的连接模型如下图所示: 通过调用QObject对象的connect函数来将某个对象的信号与另外一个对象的槽函数相关联,这样当发射者发射信号时,接收者的槽函数将被调用。这个函数的作用就是将发射者sender对象中的信号signal与接收者receiver中的member槽函数联系起来。 熟悉信号与插槽的应用以及图形设计器的应用 Qt/Embedded的图形引擎实现基础是什么,其实现结构是怎样的? Qt/Embedded的底层图形引擎是基于FrameBuffer之上的。FrameBuffer是在Linux内核架构版本2.2以后推出的标准显示设备驱动接口。采用mmap系统调用,可以将FrameBuffer的显示缓存映射为可以连续访问的一段内存指针。 FrameBuffer驱动程序的实现分为两个方面:一方面是对LCD以及其相关部件的初始化,包括画面缓冲区的创建和对DMA通道的设置;另一方面是对画面缓冲区的读写,具体的代码为read、write、lseek等系统调用接口函数。至于将画面缓冲区的内容输入到LCD显示屏上,则是由硬件自动完成的,对于软件来说是透明的。 基于Qt/Embedded开发一个嵌入式应用的一般过程如下图所示。 应用软件开发工作基本上是在工作站或是PC机上完成的。在工作站或PC机上调试运行嵌入式应用,并将输出结果显示在一个仿真小型设备显示终端的模拟器上。在开发的后期,要根据选择的嵌入式硬件平台,将嵌入式应用编译链接成适合在目标平台上运行的二进制目标代码。另外由于应用系统使用到了Qt/Embedded的库,所以还要对Qt/Embedded库的源代码进行交叉编译,然后链接成为适合在目标平台上使用的二进制目标代码库。当一个Qt/Embedded应用被下载到目标平台上,并能够可靠运行时,一个开发过程才宣告结束。 9.2.2 Qt/Embedded信号和插槽机制 信号与插槽的实现 (1)信号 Qt的signals关键字指出进入了信号声明区,随后即可声明自己的信号。 示例: signals: void mySignal(); void mySignal(int x); void mySignalParam(int x,int y); 9.2.2 Qt/Embedded信号和插槽机制 (2)插槽 插槽是普通的成员函数,因此与其他的函数一样,它们也有存取权限。插槽的存取权限决定了谁能够与其相关联。同普通的C++成员函数一样,插槽函数也分为3种类型,即public slots、private slots和protected slots。 public slots:在这个区内声明的槽意味着任何对象都可将信号与之相连接。这对于组件编程非常有用,用户可以创建彼此互不了解的对象,将它们的信号与槽进行连接以便信息能够正确地传递。 protected slots:在这个区内声明的槽意味着当前类及其子类可以将信号与之相连接。这适用于那些槽,它们是类实现的一部分,但是其界面接口却面向外部。 private slots:在这个区内声明的槽意味着只有类自己可以将信号与之相连接。这适用于联系非常紧密的类。 9.2.2 Qt/Embedded信号和插槽机制 示例: public slots: void mySlot(); void mySlot(int x); void mySignalParam(int x,int y); 9.2.2 Qt/Embedded信号和插槽机制 (3)信号与插槽关联 通过调用QObject对象的connect()函数可以将某个对象的信号与另外一个对象的插槽函数或信号相关联,当发射者发射信号时,接收者的槽函数或信号将被调用。 函数定义: bool QObject::connect (const QObject * sender, const char * signal,const QObject * receiver, const c

文档评论(0)

0520 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档