1、QT开发简介,QT是什么,Qt是一个跨平台的C+图形用户界面(GUI)库。 Qt是流行的Linux桌面环境KDE的基础,KDE是所有主要的Linux发行版的一个标准组件。 Qt由挪威的Trolltech公司出品。,为什么使用QT(1),Qt支持下述平台,具有优良的跨平台特性: MS/Windows - 95、98、NT 4.0、ME、和2000 Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台 Macintosh - Mac OS X Embedded - 有帧缓冲(framebuff
2、er)支持的Linux嵌入式平台。,为什么使用QT (2),Qt完全面向对象设计,具有良好的封装,易于扩展。 Qt提供了丰富的 API,包括多达 250 个以上的 C+ 类,还替供基于模板的collections,serialization,file,I/O device,directory management,date/time类。甚至还包括正则表达式的处理功能。,为什么使用QT (3),支持2D/3D图形渲染,支持OpenGLQt提供了一个名为QCanvas的高度优化的二维绘图区。画布可以有任意数量的QCanvasItems。画布项则可以有任意的形状、尺寸和内容,在画布中能自由的移动,并
3、且能被检查出是否有冲突。画布项能被设置成在画布中自动地移动以及使画布项支持QCanvasSprite。Qt还提供了一个OpenGL的窗口类,使在Qt应用程序中使用OpenGL变的更加容易,这个窗口类除了打开一个OpenGL显示缓冲,利用这个缓冲使用OpenGL应用编程接口来提供内容外,能像其它Qt部件那样的使用。,为什么使用QT (4),支持ActiveX控件的开发 支持数据库开发 支持XML编程 支持多平台国际化,获得和安装QT,目前Qt的最新版本是2013年7月3日发布的Qt5.1.0,公司内使用的一般是Qt3.3.8 Qt/Windows发行版是一个包含内置安装程序的自解压包。只要跟着安
4、装向导进行就可以了,我们可直接使用公司自己编译的压缩包解压。 Qt/X11是以源代码包的方式提供的,安装时先解压,再按照安装帮助进行编译安装。,QT对象模型的特性信号/槽,一种用于无缝对象通讯的信号/槽机制。信号(signal)和槽(slot)用于对象间的通讯。信号/槽机制是Qt的一个中心特征并且也许是Qt与其它工具包的最不相同的部分。当一个特定事件发生的时候,一个信号被发射。槽就是一个可以被调用处理特定信号的函数。Qt的窗口部件有很多预定义的信号和槽,我们可以通过继承来加入我们自己的信号和槽。你可以把许多信号和你所希望的单一槽相连,并且一个信号也可以和你所期望的许多槽相连。把一个信号和另一个
5、信号直接相连也是可以的。,QT对象模型的特性对象树,以一种自然的方式组织对象所有权的分层次和可查询的对象树。QObject在对象树中组织它们自己。当你以另外一个对象作为父对象来创建一个QObject时,它就被添加到父对象的children() 列表中,并且当父对象被删除的时候,它也会被删除。这种机制很好的适合了图形用户界面应用对象的需要。例如,一个QAccel(键盘快捷键)是相关窗口的子对象,当用户关闭该窗口的时候,这个快捷键也被删除了。静态函数QObject:objectTrees()提供了访问当前存在的所有根对象的方法。,QT对象模型的特性属性,可查询和可设计的属性。Qt提供了一套和一些编
6、译器提供商也提供的属性系统类似的完善的属性系统。属性可以在不知道被使用的类的任何情况的时候通过QObject中的一般函数进行读写。下面两个函数调用是等效的: / QButton *b和QObject *o指向同一个按钮 b-setDown( TRUE ); o-setProperty( “down“, TRUE );,QT对象模型的特性事件,强大的事件和事件过滤器。在Qt里,一个事件是继承自Qevent的对象。事件通过调用QObject:event(),被发送到继承自 QObject 的对象。一个事件过滤器则得以在目标对象处理之前去处理事件。,使用QT(1),编写文件hello.cpp,内容如
7、下#include #include int main( int argc, char *argv ) QApplication app( argc, argv );QPushButton btn( “Hello world!“, 0 );QObject:connect(,使用QT(2),生成可执行程序 1、编写一个hello.pro文件,内容如下SOURCES = hello.cppCONFIG += qt warn_on release 2、执行如下命令,生成Makefile文件qmake -o Makefile hello.pro 或执行如下命令,生成.dsp文件qmake -t vca
8、pp -o hello.vcproj hello.pro 3、生成可执行程序,执行如下命令nmake 或在VC中打开前面生成的.dsp文件,再生成,使用QT(3),运行该程序,结果如下,点击按钮,窗口关闭,程序退出,QT的一些资源,Qt Solutions Qt Thread(Qt实现的线程封装) Qt Socket(Qt 实现的Socket封装) 针对课题的建议: 基于第三方摄像头条码读取的图书管理工具 绘图工具 网络聊天工具,QT的一些资源,Qt Solutions Qt Single Application(Qt实现单实例进程) Qt Service(用Qt 服务器程序) Qt WinMigrate(Qt MFC封装) Qt Corba(Qt的Corba封装) QT的学习网站,http:/qt-project.org/,谢谢,