QT编程简介.ppt
《QT编程简介.ppt》由会员分享,可在线阅读,更多相关《QT编程简介.ppt(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、http:/QT编程简介http:/中国十大品牌IT教育机构目录QT简介QT编程http:/中国十大品牌IT教育机构1.QT简介Qt是一个基于C+的跨平台应用程序和UI开发框架。它包含一个类库,和用于跨平台开发及国际化的工具。由挪威Trolltech公司开发,目前已被Nokia收购 http:/ -“compile once,run anywhere”(“一次编译,到处运行”)QT -write once,compile anywhere“(“一次编程,到处编译”)http:/中国十大品牌IT教育机构基于QT开发的软件(1):KDEhttp:/中国十大品牌IT教育机构基于QT开发的软件(2):
2、GOOGLE地球http:/中国十大品牌IT教育机构基于QT的软件(3):MAYAhttp:/中国十大品牌IT教育机构基于QT的软件(4):更多Opera浏览器Skype网络电话QCadAdobePhotoshopAlbumCGAL计算几何库http:/中国十大品牌IT教育机构QT历史1996Sep24Qt1.01996OctKDE组织成立1998Apr05Trolltech的程序员在 5 天之内将 Netscape5.0 从 Motif 移植到 Qt 上1998Apr08KDEFreeQt基金会成立1998Jul12KDE1.0发布1999Jun25Qt2.0发布2000Mar20嵌入式 Q
3、t 发布2000Sep06Qt2.2发布2000Sep04Qtfreeedition开始使用 GPL2004Aug4.02008JunNokia收购QT2008Aug4.4发布,集成Webkit和Phonon2009Dec014.6发布http:/中国十大品牌IT教育机构QT优点1.优良的跨平台特性Qt支持下列操作系统:Windows,Linux,Solaris,SunOS,FreeBSD,BSD/OS,SCO,AIX,OS390,QNX 等等。2.面向对象Qt的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。Qt 提供了一种称为 signals/sl
4、ots的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。3.丰富的 APIQt包括多达 500 个以上的 C+类,还替供基于模板的 collections,serialization,file,I/O device,directory management,date/time 类。甚至还包括正则表达式的处理功能。4.大量的开发文档Network/XML/OpenGL/Database/webkit/.http:/中国十大品牌IT教育机构QT开发架构http:/中国十大品牌IT教育机构QT模块QT交叉开发库包含12+模块近700API类库,模块都依赖QtCore模块
5、编译工具configure,qmake,moc,uic,rcc开发工具Qt Creator,Qt Designer,Qt Assistant,Qt Linguisthttp:/中国十大品牌IT教育机构QtCore模块提供非GUI功能的类和方法 Basic Type(Char,Date,Time,String)File system access,Date and time handling String handling,List and array handling Threads and processes,Shared resources Libraries and Plugins,Ti
6、mers提供基本图形功能的类和方法 Point,Rectangle提供Qt对象模型的核心QobjectQtCore不依赖底层窗口系统http:/中国十大品牌IT教育机构QtGui模块扩展QtCore到GUI功能UI应用基础类部件、对话框集部件布局管理UI事件类集成输入法、绘图引擎抽象类平台抽象集成平台相关的剪贴板平台相关的显示风格平台相关的事件处理、窗口重绘http:/中国十大品牌IT教育机构编译Qt应用程序qmake -project生成Qt项目文件(*.pro)qmake用.pro文件产生平台相关的Makefile文件对包含Q_OBJECT宏的头文件生成调用moc的make规则make为当
7、前平台编译应用程序执行moc、uic、rcchttp:/中国十大品牌IT教育机构Qt编译工具元对象编译器moc(meta-object compiler)每一类头文件产生一个特定的元对象用户界面编译器uic(UI compiler)从Qt Designer的XML文件生成类文件资源编译器rcc(Resource compiler)由资源文件.qrc生成C+数据文件这些工具在编译时被自动调用http:/中国十大品牌IT教育机构2.QT编程#include#includeintmain(intargc,char*argv)QApplicationapp(argc,argv);QLabel*labe
8、l=newQLabel(HelloQt!);label-show();returnapp.exec();http:/中国十大品牌IT教育机构Qt编程的特点1.初始化 在Qt的应用程序中,首先是创建QApplication对象,QApplication类是负责图形用户界面的应用程序的控制流和主设置。int main(int argc,char*argv)QApplication app(argc,argv);.http:/中国十大品牌IT教育机构Qt编程的特点2.窗口的创建 在Qt程序中,在main中为 ApplicationWindow建立一个指针如:QLabel*label=new QLab
9、el(Hello Qt!);组建创建的时候一般是不可见的,需要调用QWidget的成员函数 show()来显示组件。label-show();http:/中国十大品牌IT教育机构Qt编程的特点3.事件处理 Qt的事件处理过程:QApplication的事件循环体从事件队列中拾取本地窗口的系统的事件或其他的事件,将事件翻译成QEvent(),然后送给QObject:event(),最后给QWidget:event()分别对事件处理。在Qt编程中,对事件的处理方式也是采用回调的方式,但是在事件的发出和接收采用的是signal和slot的机制,这是Qt的主要特征。http:/中国十大品牌IT教育机构
10、Qt中3个主要的基类1.QObject QObject类是所有能够处理signal,slot和时间的Qt对象的基类2.QApplication QApplication类负责GUI应用程序的的控制流和主要的设置,它包含主事件循环体,负责处理和调度所有来自窗口系统和其他资源的事件,并且处理应用程序的开始,结束以及会话管理,还包括系统和应用程序方面的设置。3.QWidget QWidget类是所有用户接口对象的基类,它继承QObject类的属性。http:/中国十大品牌IT教育机构QT核心技术:信号槽信号和槽是QT自行定义的一种通信机制,它独立于标准的C/C+语言,因此要正确的处理信号和槽,必须借
11、助一个称为 元对象编译器moc(Meta Object Compiler)的QT工具,该工具是一个C+预处理程序,它为高层次的事件处理自动生成所需要的附加代码。http:/中国十大品牌IT教育机构QT核心技术:信号槽观察者模式类型安全的回调方式信号和槽是多对多的关系信号和槽是一种松耦合在QObject中实现http:/中国十大品牌IT教育机构QT核心技术:信号槽信号信号 -当被观察类内部发生了观察者感兴趣的事件时,信号用来通知观察者如:一个QPushButton按键按下 一个异步处理事件处理完成 QSlider值发生改变等信号是由元对象系统自动实现的成员函数,开发者只需要申明信号函数即可。信号
12、使用emit关键字发射如:emit clicked();emit someSignal(7,“Hello”);http:/中国十大品牌IT教育机构QT核心技术:信号槽信号信号当某个信号对其客户或所有者发生的内部状态发生改变,信号被一个对象发射。只有定义过这个信号的类及其派生类能够发射这个信号。当一 个信号被发射时,与其相关联的槽将被立刻执行,就象一个正常的函数调用一样。信号-槽机制完全独立于任何GUI事件循环。只有当所有的槽返回以后发射函数(emit)才返回。如果存在多个槽与某个信号相关联,那么,当这个信号被发射时,这些槽将会一个接一个地执行,但是它们执行的顺序将会是随机的、不确定 的,我们不
13、能人为地指定哪个先执行、哪个后执行。http:/中国十大品牌IT教育机构QT核心技术:信号槽信号信号信号的声明是在头文件中进行的,QT的signals关键字指出进入了信号声明区,随后即可声明自己的信号。例如,下面定义了三个信号:Q_OBJECTsignals:void mySignal();void mySignal(int x);void mySignalParam(int x,int y);从形式上讲信号的声明与普通的C+函数是一样的,但是信号却没有函数体定义,另外,信号的返回类型都是void,不要指望能从信号返回什么有用信息。信 号由moc自动产生,它们不应该在.cpp文件中实现。htt
14、p:/中国十大品牌IT教育机构QT核心技术:信号槽槽槽槽是普通的C+成员函数,可以被正常调用,它们唯一的特殊性就是很多信号可以与其相关联。当与其关联的信号被发射时,这个槽就会被调用。槽可以有参数,但槽的参数不能有缺省值。槽的存取权限决定了谁能够与其相关联。同普通的C+成员函数一样,槽函数也分为三种类型,即public slots、private slots和protected slots。槽的声明也是在头文件中进行的。例如,下面声明了三个槽:public slots:void mySlot();void mySlot(int x);void mySignalParam(int x,int y)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QT 编程 简介
限制150内