当前位置:文档之家› QT开发简介

QT开发简介


QT对象模型的特性—事件
强大的事件和事件过滤器。 在Qt里,一个事件是继承自Qevent的 对象。事件通过调用QObject::event(), 被发送到继承自 QObject 的对象。 一个事件过滤器则得以在目标对象处 理之前去处理事件。
使用QT(1)
编写文件hello.cpp,内容如下
#include <qapplication.h> #include <qpushbutton.h>
为什么使用QT (2)
Qt完全面向对象设计,具有良好的封装, 易于扩展。 Qt提供了丰富的 API,包括多达 250 个 以上的 C++ 类,还替供基于模板的 collections,serialization,file,I/O device,directory management, date/time类。甚至还包括正则表达式的 处理功能。
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 - 有帧缓冲(framebuffer)支持的Linux嵌 入式平台。
QT对象模型的特性—属性
可查询和可设计的属性。 Qt提供了一套和一些编译器提供商也提供 的属性系统类似的完善的属性系统。 属性可以在不知道被使用的类的任何情况 的时候通过QObject中的一般函数进行读写。 下面两个函数调用是等效的: // QButton *b和QObject *o指向同一个按钮 b->setDown( TRUE ); o->setProperty( "down", TRUE );
为什么使用QT (3)
支持2D/3D图形渲染,支持OpenGL
Qt提供了一个名为QCanvas的高度优化的二维绘 图区。画布可以有任意数量的QCanvasItems。画布项 则可以有任意的形状、尺寸和内容,在画布中能自由 的移动,并且能被检查出是否有冲突。画布项能被设 置成在画布中自动地移动以及使画布项支持 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发行版是一个包含内置安装程序 的自解压包。只要跟着安装向导进行就可以了, 我们可直接使用公司自己编译的压缩包解压。 Qt/X11是以源代码包的方式提供的,安装时先 解压,再按照安装帮助进行编译安装。

QT的学习网站
/
QT对象模型的特性—对象树
以一种自然的方式组织对象所有权的分层次和 可查询的对象树。
QObject在对象树中组织它们自己。当你以另外 一个对象作为父对象来创建一个QObject时,它就被添 加到父对象的children() 列表中,并且当父对象被删除 的时候,它也会被删除。这种机制很好的适合了图形 用户界面应用对象的需要。例如,一个QAccel(键盘快 捷键)是相关窗口的子对象,当用户关闭该窗口的时候, 这个快捷键也被删除了。 静态函数QObject::objectTrees()提供了访问当前 存在的所有根对象的方法。
使用QT(2)
生成可执行程序
1、编写一个hello.pro文件,内容如下
SOURCES = hello.cpp CONFIG += qt warn_on release
2、执行如下命令,生成Makefile文件
qmake -o Makefile hello.pro
或执行如下命令,生成.dsp文件
qmake -t vcapp -o hello.vcproj hello.pro
int main( int argc, char **argv ) { QApplication app( argc, argv ); QPushButton btn( "Hello world!", 0 ); QObject::connect(&btn, SIGNAL(clicked()), &app, SLOT(quit())); btn.resize( 100, 30 ); app.setMainWidget( &btn ); btn.show(); return app.exec(); }

基于第三方摄像头条码读取的图书管理工具 绘图工具 网络聊天工具

QT的一些资源
Qt Solutions
Qt Single Application(Qt实现单实例进程) Qt Service(用Qt 服务器程序) Qt WinMigrate(Qt MFC封装) Qt Corba(Qt的Corba封装)
3、生成可执行程序,执行如下命令
nmake
或在VC中打开前面生成的.dsp文件,再生成
使用QT(3)
运行该程序,结果如下
点击按钮,窗口关闭,程序退出
QT的一些资源
Qt Solutions
Qt Thread(Qt实现的线程封装) Qt Socket(Qt 实现的Socket封装) 针对课题的建议:
QT对象模型的特性—信号/槽
一种用于无缝对象通讯的信号/槽机制。
信号(signal)和槽(slot)用于对象间的通讯。 信号/槽机制是Qt的一个中心特征并且也许是Qt与其它 工具包的最不相同的部分。 当一个特定事件发生的时候,一个信号被发射。 槽就是一个可以被调用处理特定信号的函数。Qt的窗 口部件有很多预定义的信号和槽,我们可以通过继承 来加入我们自己的信号和槽。 你可以把许多信号和你所希望的单一槽相连,并 且一个信号也可以和你所期望的许多槽相连。把一个 信号和另一个信号直接相连也是可以的。
相关主题