.Qt入门培训Qtintroduction1Qt简介Qt的使用Qt深入理解Qt的应用2Qt简介什么是Qt?3什么是Qt?原来用作用户界面开发,现可用作所有的开发例如:Databases,XML,WebKit,multimedia,networking,OpenGL,scripting,non-GUI...”Qt是一个用C++编写的跨平台开发框架.”4什么是Qt?Qt由模块构建QtCorePhononQtXmlPatternsQtXmlQtWebKitQtSvgQtSqlQtScriptQtOpenVGQtOpenGLQtNetworkQtMultimediaQtGui5什么是QT?Qt用宏(macros)和内省(introspection)扩展了C++所有的代码仍然是简明C++foreach(intvalue,intList){…}QObject*o=newQPustButton;o->metaObject()->className();//返回”QPushButton”connect(button,SIGNAL(clicked()),window,SLOT(close()));6Qt的目的一次编写,到处编译根据不同平台的本地观感生成相应的本地应用简单地使用API,高开发效率,开放性,使用有趣7Qt的历史19901991199419992001Haavard和Eirik灵感闪现开始设计,并提出信号和槽的概念1993开发出Qt的第一个图形核心命名为Qt,并建立“奇趣科技”1995签订第一个合同,开始快速发展。1997Qt1.2发布,并且用于开发KDE。Qt2.0发布Qt3.0发布。2005Qt4.0发布2008Nokia收购奇趣科技8Qt的跨平台—桌面平台WindowsMacOSXLinux/UnixX119Qt的跨平台—嵌入式平台WindowsCESymbianMaemo嵌入式Linux10Qt的授权LGPL–免费你的应用程序可以是开源的或者是不开源的对Qt的修改,必须反馈到社区GPL–免费你的应用程序必须是开源的对Qt的修改,必须反馈到社区商业的–收费你的应用程序可以是不开源的对Qt的修改,可以不开源11Qt简介Qt的使用Qt深入理解Qt的应用12Qt的代码结构--HelloWorld13Qt的代码结构--HelloWorld#include#includeintmain(intargc,char**argv){QApplicationapp(argc,argv);QLabell("HelloWorld!");l.show();returnapp.exec();}14Qt的代码结构--HelloWorld#include#includeintmain(intargc,char**argv){QApplicationapp(argc,argv);QLabell("HelloWorld!");l.show();returnapp.exec();}15Qt的代码结构--HelloWorld#include#includeintmain(intargc,char**argv){QApplicationapp(argc,argv);QLabell("HelloWorld!");l.show();returnapp.exec();}16Qt的代码结构--HelloWorld#include#includeintmain(intargc,char**argv){QApplicationapp(argc,argv);QLabell("HelloWorld!");l.show();returnapp.exec();}17Qt的代码结构--HelloWorld#include#includeintmain(intargc,char**argv){QApplicationapp(argc,argv);QLabell("HelloWorld!");l.show();returnapp.exec();}18Qt开发工具集1.QtCreator2.QtDesigner3.QtLinguist4.QtAssisant5.QtDemos19信号(Signal)与槽(Slot)初探QT提供的一种在对象间进行通讯的技术。动态地或松散地将事件和状态变化联系起来。信号和槽机制是使Qt运作的元素。20信号(Signal)与槽(Slot)初探类似于windows中的消息和消息响应都是通过C++类成员函数实现的信号和槽是通过连接实现相互关联的包含信号或槽的类必须从QObject继承21信号(Signal)与槽(Slot)初探emitclicked();22信号(Signal)与槽(Slot)初探privateslots:voidon_addButton_clicked();voidon_deleteButton_clicked();connect(clearButton,SIGNAL(clicked()),listWidget,SLOT(clear()));connect(addButton,SIGNAL(clicked()),this,SLOT(...));2xclear();23信号(Signal)与槽(Slot)初探{...emitclicked();...}{...emitclicked();...}{...emitclicked();...}{QStringnewText=QInputDialog::getText(this,"Entertext","Text:");if(!newText.isEmpty())ui->listWidget->addItem(newText);}{foreach(QListWidgetItem*item,ui->listWidget->selectedItems()){deleteitem;}}clear();24信号(Signal)与槽(Slot)初探classEmployee:publicQObject{Q_OBJECTpublic:Employee();intsalary()const;publicslots:voidsetSalary(intnewSalary);signals:voidsalaryChanged(int...