《QtGUI编程简介》PPT课件.ppt

上传人:sh****n 文档编号:6618057 上传时间:2020-02-29 格式:PPT 页数:14 大小:466.55KB
返回 下载 相关 举报
《QtGUI编程简介》PPT课件.ppt_第1页
第1页 / 共14页
《QtGUI编程简介》PPT课件.ppt_第2页
第2页 / 共14页
《QtGUI编程简介》PPT课件.ppt_第3页
第3页 / 共14页
点击查看更多>>
资源描述
开源俱乐部汤砚晗2010 12 14 C GUIQT4编程 QtbyNokia Codeless thinkmore 什么是QT Qt是Qtoolkit的缩写 Qt是一个跨平台的C 图形用户界面库 由挪威TrollTech公司于1995年底出品 TrollTech公司是一个伟大的小公司 TrollTech存在期间 Qt发展成为不但包括一套跨平台图形库 而且包括若干非常方便和智能化的构建工具 2000年该公司发布了Qt Embeddedlinux 如今 介绍嵌入式linux的书籍必定会介绍Qt的图形库移植 KDE桌面环境是linux下一个极为绚丽的桌面系统 最初由Qt开发 如今Qt已成为linux下开发C 图形界面的事实标准GoogleEarth Skype PhotoshopElements等等正是使用Trolltech公司的Qt工具包进行开发的2008年1月28日 TrollTech公司被Nokia以1 53亿美元收购 Nokia随后在2009年推出第一个官方IDE QtCreator 这个幻灯片正是根据一本同名书命名的 该书最初出版于2007年 因此没有介绍QtCreator 为什么选择QT Qt是一个跨平台的开发框架 横跨包括Unix Linux Mac Windows Meego等常见操作系统平台 并支持如Symbian WindowCE 单片机等多种嵌入式平台 一次编写 随处编译 即同样的代码 只需在新的系统上重新编译即完成了移植 大大降低了移植成本Qt使用标准的面向对象机制 支持使用C 进行开发 如果使用Qyoto和QtJambi 同样可以使用C 和Java进行开发Qt拥有250个以上的C 类 包含了无数方法 接口全部使用统一 友好的方式命名 对于一些没用过的方法不查文档也可以知道用法Qt具有丰富的工具和帮助文档 可以实现一键查询用法XML支持和Webkit引擎集成QT遵循商业和开源双重协议被Nokia合并后 Nokia即将以Qt作为塞班和meego的标准开发框架 Android是近几年才出现的名词 但是Qt在嵌入式领域已经发展了10年 Meego Intel和Nokia为了对抗ChromeOS而开发的linux内核操作系统 现已经应用于平板电脑和上网本 NextLimitTechnologies的RealFlow4移植案例 当包括迪斯尼和Pixar在内的制片厂和视觉效果工作室需要生成水花飞溅 喷涌和漩涡效果时 他们常常求助于NextLimitTechnologies及其RealFlow模拟软件 NextLimit于2007年因其出色的工作赢得了奥斯卡技术成就奖 这一成就让电影工作者可以逼真地绘制出水和其他液体的流动 RealFlow最初是基于Windows开发的应用程序 但却受到倾向于Linux的潜在客户的热捧 因此NextLimit没有将Win32代码移植到Linux 而是使用Qt重新构建了软件 NextLimit开发人员只用了两个月就将RealFlow移植到Qt NextLimitRealFlow产品技术主管AngelTena说 实在是太容易了 Qt类设计的很好并易于使用 我们甚至常常不必去看文档 我们只要想出函数的名称 就会发现有一堆的函数可用 QtbyNokia 1 QtSDK的安装和使用 先到网上搜索 Qt下载 即可找到诺基亚官网上的下载链接下载相应平台下的安装文件 Windows下直接双击运行安装 linux等一般须在终端启动之安装完成后 Windows平台下应当进行环境变量配置 使程序启动时能够找到库菜单中找到QtCreator 点击运行即可 演示 QtCreator的应用 QtCreator集成的构件 一个类Vim编辑器 支持语法高亮 自动补全 自动检查 正则表达式查找 代码折叠等 一个编译器 Windows下默认为mingw 其他平台通常为g 一个调试器 Qdebug 版本控制系统 Git SVN CVS等 需自行配置 无处不在的文档帮助系统assistant窗体设计器designer 支持控件直接拖放 语言翻译器linguist 支持程序的多语言翻译 演示例程系统qtdemo 包含覆盖主要Qt应用的例程源码及文档 程序测试编写与集成模块若干工具链程序 甚至包括Qt3代码到Qt4代码的转换器 有人见过VC6转VC NET的转换器了吗 Qt的传统用法 QtCreator之前 已经有一些人开发了IDE 如linux下的KDevelop 但是也有人喜欢直接使用Qt的工具链进行应用程序的构建 演示 直接使用终端工具构建 构建步骤 建立文件夹 以工程名命名 书写源代码目录下运行qmake project Windows下使用CommandPrompt而不是操作系统自己的命令行 qmake工程名 promake 面向对象的Qt 整个Qt是严格按照面向对象设计思想设计和实现的 因此Qt类给人的感觉是很简单 易于使用 signal slot机制比起其他GUI开发库的机制更为简单灵活但是这也意味着使用Qt开发程序 就不可能像MFC框架或者Win32编程那样可以不考虑设计就做出程序 你必须设计好数据流和控制流的走向 否则将来开发稍大规模的程序就容易陷入困境 signal和slot必须是类才能使用 功能完备的程序必须以类为主体 这点上类似于java无论是使用控件拖放产生的窗体 还是直接使用代码创建的界面 都最终使用继承或集成的方式被主体代码所使用 Qt的signal slot机制 GUI程序与传统命令行略有不同 程序停在一个时间循环中等待用户事件 每个开发库通常都会有一套机制来响应外界的事件 如鼠标点击 键盘命令等 如Windows下MFC的消息响应机制 linux下GTK的callback机制等 Qt的则为signal slot机制signal即信号 slot即槽 在Qt中他们都是以自定义函数形式存在的 任何一个类只要类体前部书写Q OBJECT即可使用Qt的信号 槽机制 假设我规定 我喊 一 一个同学马上站起来 那么这个 一 就是我这个对象发出的信号 站起来 就是这位同学 对象 的槽 而这个规定的过程 就是简单的通过一句connect来完成 connect 我 SIGNAL 喊一 某同学 SLOT 站起来 这样以后只要我喊一 这位同学就会站起来 正如你刚才所看到的代码一样 signal和slot在类体内通常声明为void型成员函数 允许带参数signal不需要实体 slot必须要有实体 否则错误就同声明一个函数却没有实体一样 会发生链接错误深度解释 signal slot机制是利用C 语言实现的一个巧妙机制 本质上仍然是C 经过connect之后 所有发出信号的地方 在预处理过程中都会被插入相应的slot代码 这就完成了对signal的响应 这一点决定了Qt程序与MFC等程序的决定性不同 记住这一点 将来会对你处理某些棘手问题有帮助 Qt缺陷与不足 QtCreator是Nokia并购TrollTech后出品的IDE环境 因此仍与较多问题 其中有些问题可能会对初学者造成障碍 因此这里提出一二以供参考 目前QtCreator代码编辑器有时会出现自动补全失效的问题 属于正常现象 未解决的bug只好接受了 不要急躁QtCreator下方的错误信息显示不完整 有时如一些链接错误的输出信息不会被正确捕捉 建议出现诸如Collectlldreturned 1status这样不甚明了的信息时 在终端中手动make一下 同样的还有运行时程序的意外退出 linux下诸如内存越界这样的问题也只会提示 applicationterminatedunexpectedly 像程序需要特殊权限 如linux unix 系统下就更不用说了Qt跨平台的代价是需要较多的依赖库 尽管我们知道MFC程序同样需要很多库 但是这些库都已经被微软放到系统文件夹下了 即使是现在的 Net框架也已经是默认安装好了 但是Windows毕竟不是Nokia的产品 所以程序要么静态编译成比较大的文件 要么带许多库 总之 不是用来编写小程序在别人电脑上直接YY的理想平台 感谢您的关注OpensourceClubofCUMT
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!