Qt快速开发指南.ppt_第1页
Qt快速开发指南.ppt_第2页
Qt快速开发指南.ppt_第3页
Qt快速开发指南.ppt_第4页
Qt快速开发指南.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一 Qt简介 Qt原为trolltech出品 后被Nokia收购 Logo Codeless Createmore Developeverywhere Qt完全基于C 具有跨平台的能力和国际化支持 应用项目 linux下的KDE Autodesk的Maya2011 二 实例演示 Qt自带实例 1 40000chips2 AnimatedTitles3 Dynamiclayouts4 Boxes5 Puzzle 二 Qt部件 一 强大的UI编辑器 Designer 二 类似MSDN的帮助文档Assitant 三 直观的实例展示Qtdemo 四 轻量而快捷的IDE Qtcreator 五 翻译工具 QtLinguist 一 Designer 1 所见即所得 几乎所有的图元属性都可以在Designer上直接修改 2 更多的控件支持 LcdNumber 富文本edit 日历 视频播放 spinBox等3 图元的坐标显示和控制4 图元布局 layout 5 信号 槽编辑器 动作 action 编辑器6 提升窗口对象 Promote 二 Assitant 1 IDE中可使用F1快捷方式2 富文本 更丰富的表现方式3 查找关键字时的高亮显示4 简洁而更清晰方便的查找体验5 与example工程的无缝结合 三 Qtdemo 1 直观获取Qt的体验和功能2 迅速查找示例代码的利器 四 Qtcreator 1 占用空间小2 简洁直观的界面显示3 与Eclipse类似的快捷操作 多行注释 ctrl 多行Tab 迅速定位 ctrl 鼠标单击 已打开文件的切换 shift tab 4 h和 cpp的切换 F4 迅速返回Edit Esc 5 即时语法错误检查和提示6 查找时的高亮显示 三 signal slot机制 一 优点 二 语法 三 使用方法 四 注意事项 一 优点 1 比起event msg机制更为灵活2 可以传递更多的参数3 发送方和接受方可以互不知道对方存在 更符合面向对象的设计以及利于金字塔的模式 4 Observer的设计模式5 线程安全 二 语法 1 signal是发送方 slot为接收方 也可以是另外的signal 2 连接方向 多对对 一个signal可以发送给多个slot signal 多个signal可以发送给一个slot signal3 signal和slot都可以接受参数 参数类型和个数不限 但是接收方的参数不能大于发送方 参数类型保持一致 4 祖先类必须是QObject5 h文件中需要声明宏 Q OBJECT6 slot可以当作普通function调用 三 使用方法 1 定义signal和slot2 实例化发送者 接收者3 创建连接 connect constQObject sender SIGNAL signal method constQObject receiver SLOT slot method 4 发送信号emitsignal 四 注意事项 1 祖先类必须是QObject 添加Q OBJECT宏2 connect之前 发送方和接收方必须先创建3 connect之后 发送方或接收方的指针指向新的实体 连接不会自动更新 需要重新建立 4 有些特殊情况 需要先断开连接 使用disconnect5 当发送方或接受方有一个销毁后 连接自动断开6 使用自定义的类型作为参数时 需要先使用qRegisterMetaType注册类型 7 线程间的交互建议使用signal slot8 所有建立的连接会记录在一个列表 并通过锁保护 所以减少不必要的连接 四 Qt特性 1 跨平台和国际化支持2 NoIDD IDC Nohwnd Nodoc3 更好的M V C框架4 跟Vc相比 更面向对象 没有结构体 图元表现的变更只需要改变其属性 基本不需要重载事件 代码更简洁5 更好的库设计 例如QImage 几乎支持所有图片类型 set get的对应6 更好的库封装 感觉像使用Java 例如QTcpSocket和QTcpServer QPolygon和QVector 7 更强大的库支持 xml script文件读写数据库操作Opengl支持 QtOpenGL模块 OpenVG支持 QtOpenVG模块算法支持 base64 hash md4 md5 sha18 简单的类型转换 所有的常用类型可以跟QString自由转换 另外QString支持utf8 unicode ascii latin1使用方式 QString toInt QString number QString toUtf8 QString fromUtf8 9 更细腻的界面表现 QPointF QLineF10 拖放机制和动态机制11 简单的头文件包含方式 include include12 开源 五 Qt库分类简介 一 Qt模块一览 二 绘图相关类 三 容器类 四 数据库操作类 五 文件读写类 六 网络通信类 七 动态效果类 八 拖拽机制类 九 类型转换 十 QtGlobal 二 绘图相关类 图元的基类 QWidget图元 QDialog QPushButton QLabel QLineEdit QComboBox QListWidget QTableWidget QMainWindow QMenu QDockWidget绘图 QPen QBrush QPainter图形 QRectF QLineF QPointF QPolygonFQTransform 支持平移 旋转 缩放QStyle 界面风格QSrocallArea 自动添加滚动条 三 容器类 强大的容器类 包括Qvector Qlist QLinkedList Qqueue Qmap QMultiMap QHash QMultiHash qset泛型指针 iterator和const iterator泛型算法 QtAlgorithms 四 数据库操作类 QSqlDatabase 建立连接QSqlQuery 查询和操作 五 文件读写类 文件基本操作 QFile文本文件操作 QTextStream二进制文件操作 QDataStreamXml文件操作 QXmlStreamReader和QXmlStreamWriter脚本文件操作 QScriptValuesc QScriptEngineengine sc engine evaluate jsonString QScriptValueIteratorit sc while it hasNext it next qWarning it name it value 六 网络通信类 TCP QTcpServer和QTcpSocketUDP QTcpSocketHttp QHttp QHttpHeader 七 动态效果类 基本属性设置 QVariantAnimation QPropertyAnimation组设置 QParallelAnimationGroup QSequentialAnimationGroup平滑和控制曲线 QEasingCurve 八 拖拽机制类 需要设置属性 setAcceptDrops true Qdrag QMimeData事件 voiddragEnterEvent QDragEnterEvent event voiddragMoveEvent QDragMoveEvent event voidQWidget dropEvent QDropEvent event 九 类型转换 类型的基本类 QVariant常用类型建议使用QString转换转换方式 from to 十 QtGlobal 跨平台类型 quint8 quint16 quint32 quint64调试信息 qWarning list size 常用方法 qAbs qMin qMax 六 开发经验 qApp 全局指针 application的实例Undefinedrefferencetovtable 一般为signal slot语法错误 O BJECT宏未添加或非Qobject派生类 如果语法没问题 pro文件重新添加头文件Socket只能作为指针传递 传递后如果需要调用socket的方法 需要通过signal slot添加模块需要相应在pro文件中添加该模块已创建的app工程 如果需要添加GUI模块 main cpp中的QCoreApplication需要改为QApplication可使用Signal slot替代回调 销毁 可以借助Deletelater 例 Connect this SIGNAL close socket SLOT Deletel

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论