诺基亚公司Qt嵌入式开发课件.ppt
《诺基亚公司Qt嵌入式开发课件.ppt》由会员分享,可在线阅读,更多相关《诺基亚公司Qt嵌入式开发课件.ppt(59页珍藏版)》请在三一办公上搜索。
1、2023/11/17,大连东软信息学院 嵌入式系统导论课程组,嵌入式系统,2023/11/17,第6章 Qt图形界面应用程序开发,6.1 Qt简介6.2 Qt4 Designer的应用6.3 Qt4与数据库6.4 Qt/Embedded,2023/11/17,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程序结构及示例,2023/11/17,6.1.1 Qt的简介,Qt是挪威Trolltech公司出品的一个跨平台的C+图形用户界面库。Trolltech
2、公司目前开发两种产品:一种是跨平台的图形界面设计平台,即Qt。一种是提供给嵌入式系统的应用程序开发平台,可以应用到PDA,手机等手持设备上,即Qtopia,是基于FrameBuffer的Qt/Embedded。,2023/11/17,Trolltech的双重授权模式,Trolltech公司提供两种授权模式,一种用于商业性质的授权,一种用于免费的开源授权,2023/11/17,6.1.1 Qt的简介,Qt 同 X Window 上的Motif,Openwin,GTK 等图形界面库,和Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西,但是 Qt 具有很多优点。(1)Qt有优
3、良的跨平台性,可支持的操作系统有。(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的嵌入式处理器上。,2023/11/17,Qt特征(一),面向对象Qt具有模块设计和注重软件构件或元素的可重用性的特点构件支持Qt提供信号(signal)和插槽(slot)概念,并
4、支持对象之间在彼此不知道对方信息的情况下进行合作,这使得Qt非常适合于真正的构件编程友好的联机帮助Qt提供了大量的联机参考文档,有超文本HTML方式,也有Unix帮助页man手册页和补充说明。对于初学者,其中的指南将一步步介绍如何进行Qt编程,2023/11/17,Qt特征(二),便利性由于Qt是一种跨平台的GUI工具包,它对编程者隐藏了在处理不同窗口系统时潜在的问题,Qt定义了一些类来隐藏在不同操作系统上不同处理方式下的细节问题国际化Qt为本地化应用提供了完全的支持,所有用户界面文本都可以基于消息翻译表被翻译成各国语言,Qt还支持双字节16bit国际字符标准,2023/11/17,Qt特征(
5、三),丰富的API函数Qt为专业应用提供了大量的函数,在Qt的API中含有大约250个C+类,大多数的类都是GUI专有的可用户化外观Qt支持主题,基于Qt的应用程序能够在Windows外观、Motif外观,以及其它一些用户化外观主题之间切换完整的一套组件工具Qt编程的基本模块称之为组件,组件是用户界面的组成部分,Qt含有用来创建专业外观的用户界面所需要的所有组件,2023/11/17,6.1.2 Qt中主要的类,QObjectQObject类是所有能够处理signal、slot和事件的Qt对象的基类,原形如下:QObject:QObject(QObject*parent=0,constchar
6、*name=0)在上面的函数中如果parent为0则构造一个无父的对象,如果对象是一个组件,则它就会成为顶层的窗口。,2023/11/17,QObject类(一),class Mandelbrot:public QObjectQ_OBJECT/需要使用signal和slotpublic:Mandelbrot(QObect*parent=0,const char*name);public slots:void start();signals:void done();private slots:void calculate();private:QTimer timer;;,2023/11/17,Q
7、Object类(二),/构造初始化一个Mandelbrot对象Mandelbrot:Mandelbrot(QObject*parent=0,const char*name):QObject(parent,name)connect(,2023/11/17,6.1.2 Qt中主要的类,2.QApplicationQApplication类负责GUI应用程序的控制流和主要的设置,它包括主事件循环体,负责处理和调度所有来自窗口系统和其他资源的事件处理应用程序的开始、结束以及会话管理。对于一个应用程序来说,建立此类的对象是必不可少的QApplication是QObject类的子类,2023/11/17,
8、2023/11/17,6.1.2 Qt中主要的类,3.QWidgetQWidget类是所有用户接口对象(组建)的基类,它继承了QObject类的属性组件是用户界面的单元组成部分,它接收鼠标、键盘和其它从窗口系统来的事件,并把它自己绘制在屏幕上QWidget类有很多成员函数,但一般不直接使用,而是通过子类继承来使用其函数功能。如,QPushButton、QlistBox等都是它的子类QWidget是QObject类的子类,2023/11/17,2023/11/17,6.1.3 信号和槽,信号和槽机制是Qt的一个主要特征,是Qt与其他工具包最不相同的部分。在图形用户界面编程中,经常会出现窗口中的一
9、个部件发生的变化会被通知给另一个部件,在Qt中采用信号和槽来实现对象部件之间的通信。,2023/11/17,Signal和Slot的声明(一),在Qt程序设计中,凡是包含signal和slot的类中都要加上Q_OBJECT的定义,下面的例子给出了如何在一个类中定义signal和slot:class Student:public QObject Q_OBJECTpublic:Student()myMark=0;int mark()const return myMark;public slots:void setMark(int newMark);signals:void markChanged(
10、int newMark);private:int myMark;,2023/11/17,Signal和Slot的声明(二),signal的发出一般在事件的处理函数中,利用emit发出signal,在下面的例子中在事件处理结束后发出signalvoid Student:setMark(int newMark)if(newMark!=myMark)myMark=newMark;emit markChanged(myMark);,2023/11/17,Signal和Slot的连接(一),在signal和slot声明以后,需要使用connect()函数将它们连接起来。connect()函数属于QObj
11、ect类的成员函数,它能够连接signal和slot,也可以用来连接signal和signal函数原形如下:bool connect(constQObject*sender,constchar*signal,const QObject*receiver,const char*slot)其中第一个和第三个参数分别指出signal和slot是属于那个对象或组件,2023/11/17,Signal和Slot的连接(二),在使用connect()函数进行连接的时候,还需要用到SIGNAL()和SLOT()这两个宏,使用方法如下:QLabel*label=new QLabel;QScrollBar*sc
12、roll=new QScrollBar;QObject:connect(scroll,SIGNAL(valueChanged(int),label,SLOT(setNum(int);,2023/11/17,Signal和Slot的连接方式(一),2023/11/17,Signal和Slot的连接方式(二),同一个信号连接多个插槽connect(slider,SIGNAL(valueChanged(int),spinBox,SLOT(setValue(int);connect(slider,SIGNAL(valueChanged(int),this,SLOT(updateStatusBarInd
13、icator(int);多个信号连接到同一个插槽connect(lcd,SIGNAL(overflow(),this,SLOT(handleMathError();connect(calculator,SIGNAL(divisionByZero(),this,SLOT(handleMathError();,2023/11/17,Signal和Slot的连接方式(三),一个信号连接到另一个信号connect(lineEdit,SIGNAL(textChanged(const QString 取消一个连接不是很常用,因为Qt会在一个对象被删除后自动取消这个对象所包含的所有的连接,2023/11/1
14、7,6.1.4 Qt的帮助文档,2023/11/17,6.1.5 Qt4的特点和优势,Qt4较以前的版本,有了较大的改进,具体特点及优势如下:Qt4中,所有的头文件(.h)存放位置更规范,按照分类形式,放到QtCore,QtDBus,QtGui,QtNetwork,QtOpenGL,QtSql等子文件夹下,而不像之前的版本,所有的头文件都放在一起。Qt4增加了很多新的控件,但是对之前版本中的控件也有保留,只不过在命名上在类名前面加上Qt3。Qt4中界面的设计与逻辑功能分开,界面设计的头文件中不再包含任何用户自己写的代码,逻辑功能的实现在用户自己重新定义的类中实现,而这个重新定义的类是完成界面设
15、计类的继承类。当用QtDesigner修改界面布局后,只需用uic工具直接生成新的界面头文件覆盖原来的文件即可。,2023/11/17,6.1.6 Qt4的安装与配置,1 解压压缩包 rootlocalhost home#tar zxvf qt-x11-opensource-src-4.3.2.tar.gz 2 配置并编译rootlocalhost qt-x11-opensource-src-4.3.2#./configure-no-opensslrootlocalhost qt-x11-opensource-src-4.3.2#gmake,2023/11/17,6.1.6 Qt4的安装与配置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 诺基亚 公司 Qt 嵌入式 开发 课件

链接地址:https://www.31ppt.com/p-6609344.html