8_嵌入式Linux系统QT应用程序.pdf
《8_嵌入式Linux系统QT应用程序.pdf》由会员分享,可在线阅读,更多相关《8_嵌入式Linux系统QT应用程序.pdf(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式Linux 系统QT应用程序嵌入式嵌入式Linux系统系统QT 应用程序应用程序本章内容?了解了解Qt/Embedded 开发模型;开发模型;?了解了解Qt/Embedded 信号与槽机制;信号与槽机制;?掌握设备驱动、用户应用程序的开发过程及方法。掌握设备驱动、用户应用程序的开发过程及方法。Qt/Embedded 应用编程基础嵌入式嵌入式Linux系统系统QT 应用程序应用程序Qt/Embedded 开发模型?基于基于Qt 的的GUI 应用开发也采用交叉编译的模式。应用开发也采用交叉编译的模式。?在宿主机上构建嵌入式在宿主机上构建嵌入式Qt 开发平台;开发平台;?在宿主机上编写在宿主机
2、上编写Qt 应用程序;应用程序;?基于基于ARM 平台的平台的Qt 应用程序编译;应用程序编译;?基于基于ARM 平台的平台的Qt 应用程序移植。应用程序移植。嵌入式嵌入式Linux系统系统QT 应用程序应用程序宿主机移植所需工具及环境变量声明宿主机移植所需工具及环境变量声明工具软件工具软件描述描述变量声明变量声明tmake1.11生成生成Makefile文件文件TMAKEDIR/TMAKEPATH/PATHQt-x11-2.3.2qvfb虚拟帧缓存工具虚拟帧缓存工具uic用户界面编辑器用户界面编辑器Designer Qt 图形设计器图形设计器LD_LIBRARY_PATH_/PATHQt-e
3、mbedded-2.3.7Qt库支持库支持 libqte.soQTEDIR/LD_LIBRARY_PATH/PATHQtopia-free-1.7.0应用程序开发包应用程序开发包/桌面环境桌面环境QPEDIR/LD_LIBRARY_PATH/PATH嵌入式嵌入式Linux系统系统QT 应用程序应用程序Qt/Embedded 信号和插槽机制?信号和插槽机制是信号和插槽机制是Qt 的的核心机制核心机制,信号和插槽是一种高级接口,应用于对象之间的通信。,信号和插槽是一种高级接口,应用于对象之间的通信。?信号和插槽是信号和插槽是Qt 自行定义的一种对象间自行定义的一种对象间通信机制通信机制,完全可以取
4、代原始的回调和消息映射机制(函数指针)。它独立于标准的,完全可以取代原始的回调和消息映射机制(函数指针)。它独立于标准的C/C+语言。语言。嵌入式嵌入式Linux系统系统QT 应用程序应用程序1、对象中能够包含信号和插槽;、对象中能够包含信号和插槽;2、对象中包含的信号和插槽数量可以不定。、对象中包含的信号和插槽数量可以不定。嵌入式嵌入式Linux系统系统QT 应用程序应用程序1、对象改变状态时,信号就由该对象发射、对象改变状态时,信号就由该对象发射(emit)出去了;出去了;2、不需要知道另一端是谁在接收这个信号。、不需要知道另一端是谁在接收这个信号。3、当一个信号被发射时,与其相关联的插槽
5、将被立刻执行,就像一个正常的函数调用一样。、当一个信号被发射时,与其相关联的插槽将被立刻执行,就像一个正常的函数调用一样。嵌入式嵌入式Linux系统系统QT 应用程序应用程序1、插槽用于接收信号,但它们是普通的对象成员函数。、插槽用于接收信号,但它们是普通的对象成员函数。2、插槽不需要知道是否有任何信号与自己相连接。、插槽不需要知道是否有任何信号与自己相连接。3、确保对象被当作一个真正的软件组件来使用。、确保对象被当作一个真正的软件组件来使用。嵌入式嵌入式Linux系统系统QT 应用程序应用程序1、可以将很多信号与单个插槽进行连接,也可以将单个信号与很多插槽进行连接;、可以将很多信号与单个插槽
6、进行连接,也可以将单个信号与很多插槽进行连接;2、信号与插槽构造了一个强大的部件编程机制。、信号与插槽构造了一个强大的部件编程机制。嵌入式嵌入式Linux系统系统QT 应用程序应用程序信号?当某个信号对其客户或所有者内部状态发生改变时,信号就被一个对象发射。当某个信号对其客户或所有者内部状态发生改变时,信号就被一个对象发射。?当一个信号被发射时,与其相关联的插槽将被立刻执行,就像一个正常的函数调用一样。当一个信号被发射时,与其相关联的插槽将被立刻执行,就像一个正常的函数调用一样。?只有当所有的槽返回以后发射函数(只有当所有的槽返回以后发射函数(emit)才返回。)才返回。?如果存在多个槽与某个
7、信号相关联,那么,当这个信号被发射时,这些槽将会一个接一个地执行,但是它们执行的顺序将会是随机的、不确定的,用户不能人为地指定哪个先执行、哪个后执行。如果存在多个槽与某个信号相关联,那么,当这个信号被发射时,这些槽将会一个接一个地执行,但是它们执行的顺序将会是随机的、不确定的,用户不能人为地指定哪个先执行、哪个后执行。嵌入式嵌入式Linux系统系统QT 应用程序应用程序插槽?插槽是普通的插槽是普通的C+成员函数,可以被正常调用,它们惟一的特殊性就是很多信号可以与其相关联。当与其关联的信号被发射时,这个插槽就会被调用。成员函数,可以被正常调用,它们惟一的特殊性就是很多信号可以与其相关联。当与其关
8、联的信号被发射时,这个插槽就会被调用。?插槽可以有参数,但插槽的参数不能有缺省值。插槽可以有参数,但插槽的参数不能有缺省值。?插槽函数也分为插槽函数也分为3 种类型,即种类型,即public slots、private slots和和protected slots。嵌入式嵌入式Linux系统系统QT 应用程序应用程序?public slots:在这个区内声明的槽意味着任何对象都可将信号与之相连接。:在这个区内声明的槽意味着任何对象都可将信号与之相连接。?用户可以创建彼此互不了解的对象,将它们的信号与槽进行连接以便信息能够正确地传递。用户可以创建彼此互不了解的对象,将它们的信号与槽进行连接以便信
9、息能够正确地传递。?protected slots:在这个区内声明的槽意味着当前类及其子类可以将信号与之相连接。:在这个区内声明的槽意味着当前类及其子类可以将信号与之相连接。?这适用于那些槽,它们是类实现的一部分,但是其界面接口却面向外部。这适用于那些槽,它们是类实现的一部分,但是其界面接口却面向外部。?private slots:在这个区内声明的槽意味着只有类自己可以将信号与之相连接。:在这个区内声明的槽意味着只有类自己可以将信号与之相连接。?这适用于联系非常紧密的类。这适用于联系非常紧密的类。嵌入式嵌入式Linux系统系统QT 应用程序应用程序信号与插槽关联bool QObject:con
10、nect(const QObject*sender,const char*signal,const QObject*receiver,const char*member)static?QObject 对象的对象的connect()函数的作用就是将发射者函数的作用就是将发射者sender 对象中的信号对象中的信号signal 与接收者与接收者receiver 中的中的member 插槽函数联系起来。插槽函数联系起来。?当指定信号当指定信号signal 时必须使用时必须使用Qt 的宏的宏SIGNAL(),当指定插槽函数时必须使用宏,当指定插槽函数时必须使用宏SLOT()。如果发射者与接收者属于同一
11、个对象的话,那么在。如果发射者与接收者属于同一个对象的话,那么在connect()调用中接收者参数可以省略。调用中接收者参数可以省略。嵌入式嵌入式Linux系统系统QT 应用程序应用程序解除信号与插槽关联bool QObject:disconnect(const QObject*sender,const char*signal,const Object*receiver,const char*member)static?当信号与槽没有必要继续保持关联时,用户可以使用当信号与槽没有必要继续保持关联时,用户可以使用QObject 对象的对象的disconnect()函数来断开连接。函数来断开连接。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 Linux 系统 QT 应用程序
限制150内