诺基亚公司qt嵌入式开发课件

上传人:tian****1990 文档编号:75122885 上传时间:2019-01-30 格式:PPT 页数:59 大小:3.04MB
返回 下载 相关 举报
诺基亚公司qt嵌入式开发课件_第1页
第1页 / 共59页
诺基亚公司qt嵌入式开发课件_第2页
第2页 / 共59页
诺基亚公司qt嵌入式开发课件_第3页
第3页 / 共59页
诺基亚公司qt嵌入式开发课件_第4页
第4页 / 共59页
诺基亚公司qt嵌入式开发课件_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《诺基亚公司qt嵌入式开发课件》由会员分享,可在线阅读,更多相关《诺基亚公司qt嵌入式开发课件(59页珍藏版)》请在金锄头文库上搜索。

1、2019/1/30,大连东软信息学院 嵌入式系统导论课程组,嵌入式系统,2019/1/30,第6章 Qt图形界面应用程序开发,6.1 Qt简介 6.2 Qt4 Designer的应用 6.3 Qt4与数据库 6.4 Qt/Embedded,2019/1/30,6.1 Qt简介,6.1.1 Qt的介绍 6.1.2 Qt中主要的类 6.1.3 信号和槽 6.1.4 Qt的帮助文档 6.1.5 Qt4的特点和优势 6.1.6 Qt4的安装与配置 6.1.7 Qt4程序结构及示例,2019/1/30,6.1.1 Qt的简介,Qt是挪威Trolltech公司出品的一个跨平台的C+图形用户界面库。 Tro

2、lltech公司目前开发两种产品: 一种是跨平台的图形界面设计平台,即Qt。 一种是提供给嵌入式系统的应用程序开发平台,可以应用到PDA,手机等手持设备上,即Qtopia,是基于FrameBuffer的Qt/Embedded。,2019/1/30,Trolltech的双重授权模式,Trolltech公司提供两种授权模式,一种用于商业性质的授权,一种用于免费的开源授权,2019/1/30,6.1.1 Qt的简介,Qt 同 X Window 上的Motif,Openwin,GTK 等图形界面库,和Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西,但是 Qt 具有很多优点。

3、(1)Qt有优良的跨平台性,可支持的操作系统有。 (2)Unix、Linux、Solaris、SunOS等X11平台; (3)Windows 95、Windows 98、WindowsNT 4.0、Windows 2000、Windows XP; (4)Mac OSX、HP-UX、QNX、FressBSD等; (5)MIPS、ARM、StrongARM、Motorola 68000、PowerPC和XScale等支持FrameBuffer的嵌入式处理器上。,2019/1/30,Qt特征(一),面向对象 Qt具有模块设计和注重软件构件或元素的可重用性的特点 构件支持 Qt提供信号(signal)

4、和插槽(slot)概念,并支持对象之间在彼此不知道对方信息的情况下进行合作,这使得Qt非常适合于真正的构件编程 友好的联机帮助 Qt提供了大量的联机参考文档,有超文本HTML方式,也有Unix帮助页man手册页和补充说明。对于初学者,其中的指南将一步步介绍如何进行Qt编程,2019/1/30,Qt特征(二),便利性 由于Qt是一种跨平台的GUI工具包,它对编程者隐藏了在处理不同窗口系统时潜在的问题,Qt定义了一些类来隐藏在不同操作系统上不同处理方式下的细节问题 国际化 Qt为本地化应用提供了完全的支持,所有用户界面文本都可以基于消息翻译表被翻译成各国语言,Qt还支持双字节16bit国际字符标准

5、,2019/1/30,Qt特征(三),丰富的API函数 Qt为专业应用提供了大量的函数,在Qt的API中含有大约250个C+类,大多数的类都是GUI专有的 可用户化外观 Qt支持主题,基于Qt的应用程序能够在Windows外观、Motif外观,以及其它一些用户化外观主题之间切换 完整的一套组件工具 Qt编程的基本模块称之为组件,组件是用户界面的组成部分,Qt含有用来创建专业外观的用户界面所需要的所有组件,2019/1/30,6.1.2 Qt中主要的类,QObject QObject类是所有能够处理signal、slot和事件的Qt对象的基类,原形如下: QObject:QObject ( QO

6、bject * parent =0,const char * name = 0 ) 在上面的函数中如果parent为0则构造一个无父的对象,如果对象是一个组件,则它就会成为顶层的窗口。,2019/1/30,QObject类(一),class Mandelbrot:public QObject Q_OBJECT /需要使用signal和slot public : Mandelbrot(QObect *parent=0, const char *name); public slots: void start(); signals: void done(); private slots: void

7、calculate(); private: QTimer timer; ;,2019/1/30,QObject类(二),/构造初始化一个Mandelbrot对象 Mandelbrot:Mandelbrot(QObject *parent=0, const char *name) :QObject(parent, name) connect( ,2019/1/30,6.1.2 Qt中主要的类,2. QApplication QApplication类负责GUI应用程序的控制流和主要的设置,它包括主事件循环体,负责处理和调度所有来自窗口系统和其他资源的事件 处理应用程序的开始、结束以及会话管理。

8、对于一个应用程序来说,建立此类的对象是必不可少的 QApplication是QObject类的子类,2019/1/30,2019/1/30,6.1.2 Qt中主要的类,3. QWidget QWidget类是所有用户接口对象(组建)的基类,它继承了QObject类的属性 组件是用户界面的单元组成部分,它接收鼠标、键盘和其它从窗口系统来的事件,并把它自己绘制在屏幕上 QWidget类有很多成员函数,但一般不直接使用,而是通过子类继承来使用其函数功能。如,QPushButton、QlistBox等都是它的子类 QWidget是QObject类的子类,2019/1/30,2019/1/30,6.1.

9、3 信号和槽,信号和槽机制是Qt的一个主要特征,是Qt与其他工具包最不相同的部分。 在图形用户界面编程中,经常会出现窗口中的一个部件发生的变化会被通知给另一个部件,在Qt中采用信号和槽来实现对象部件之间的通信。,2019/1/30,Signal和Slot的声明(一),在Qt程序设计中,凡是包含signal和slot的类中都要加上Q_OBJECT的定义,下面的例子给出了如何在一个类中定义signal和slot: class Student : public QObject Q_OBJECT public: Student() myMark = 0; int mark() const return

10、 myMark; public slots: void setMark(int newMark); signals: void markChanged(int newMark); private: int myMark; ;,2019/1/30,Signal和Slot的声明(二),signal的发出一般在事件的处理函数中,利用emit发出signal,在下面的例子中在事件处理结束后发出signal void Student:setMark(int newMark) if (newMark!= myMark) myMark = newMark; emit markChanged(myMark);

11、 ,2019/1/30,Signal和Slot的连接(一),在signal和slot声明以后,需要使用connect()函数将它们连接起来。connect()函数属于QObject类的成员函数,它能够连接signal和slot,也可以用来连接signal和signal 函数原形如下: bool connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * slot) 其中第一个和第三个参数分别指出signal和slot是属于那个对象或组件,2019/1/30,Signa

12、l和Slot的连接(二),在使用connect()函数进行连接的时候,还需要用到SIGNAL()和SLOT()这两个宏,使用方法如下: QLabel *label = new QLabel; QScrollBar *scroll = new QScrollBar; QObject:connect( scroll,SIGNAL(valueChanged(int), label, SLOT(setNum(int) );,2019/1/30,Signal和Slot的连接方式(一),2019/1/30,Signal和Slot的连接方式(二),同一个信号连接多个插槽 connect(slider, SI

13、GNAL(valueChanged(int),spinBox, SLOT(setValue(int); connect(slider,SIGNAL(valueChanged(int),this, SLOT(updateStatusBarIndicator(int); 多个信号连接到同一个插槽 connect(lcd, SIGNAL(overflow(),this, SLOT(handleMathError(); connect(calculator, SIGNAL(divisionByZero(),this, SLOT(handleMathError();,2019/1/30,Signal和S

14、lot的连接方式(三),一个信号连接到另一个信号 connect(lineEdit, SIGNAL(textChanged(const QString 取消一个连接不是很常用,因为Qt会在一个对象被删除后自动取消这个对象所包含的所有的连接,2019/1/30,6.1.4 Qt的帮助文档,2019/1/30,6.1.5 Qt4的特点和优势,Qt4较以前的版本,有了较大的改进,具体特点及优势如下: Qt4中,所有的头文件(.h)存放位置更规范,按照分类形式,放到QtCore,QtDBus,QtGui,QtNetwork,QtOpenGL,QtSql等子文件夹下,而不像之前的版本,所有的头文件都放在

15、一起。 Qt4增加了很多新的控件,但是对之前版本中的控件也有保留,只不过在命名上在类名前面加上Qt3。 Qt4中界面的设计与逻辑功能分开,界面设计的头文件中不再包含任何用户自己写的代码,逻辑功能的实现在用户自己重新定义的类中实现,而这个重新定义的类是完成界面设计类的继承类。当用QtDesigner修改界面布局后,只需用uic工具直接生成新的界面头文件覆盖原来的文件即可。,2019/1/30,6.1.6 Qt4的安装与配置,1 解压压缩包 rootlocalhost home# tar zxvf qt-x11-opensource-src-4.3.2.tar.gz 2 配置并编译 rootloc

16、alhost home# cd qt-x11-opensource-src-4.3.2 rootlocalhost qt-x11-opensource-src-4.3.2#./configure -no-openssl rootlocalhost qt-x11-opensource-src-4.3.2#gmake,2019/1/30,6.1.6 Qt4的安装与配置,3安装库文件 rootlocalhost qt-x11-opensource-src-4.3.2#su rootlocalhost qt-x11-opensource-src-4.3.2#gmake install Qt默认被安装的路径为:/usr/local/Trolltech/Qt-4.3.2。如果安装的时候需要更改安装的路径,可以加上-prefix 参数来指定安装路径。 4设置环境变量 如果需要直接用Qt命令,那么需要设置

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号