《QtGUI编程简介》PPT课件.ppt_第1页
《QtGUI编程简介》PPT课件.ppt_第2页
《QtGUI编程简介》PPT课件.ppt_第3页
《QtGUI编程简介》PPT课件.ppt_第4页
《QtGUI编程简介》PPT课件.ppt_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

开源俱乐部 汤砚晗 2010.12.14,C+ GUI QT4 编程,Qt by Nokia,Code less, think more,什么是QT,Qt是 Q toolkit的缩写,Qt 是一个跨平台的 C+ 图形用户界面库,由挪威 TrollTech 公司于1995年底出品。 TrollTech公司是一个伟大的小公司,TrollTech存在期间,Qt发展成为不但包括一套跨平台图形库,而且包括若干非常方便和智能化的构建工具,2000年该公司发布了Qt/Embedded linux,如今,介绍嵌入式linux的书籍必定会介绍Qt的图形库移植。 KDE桌面环境是linux下一个极为绚丽的桌面系统,最初由Qt开发,如今Qt已成为linux下开发C+图形界面的事实标准 Google Earth、Skype、Photoshop Elements等等正是使用Trolltech公司的Qt工具包进行开发的 2008年1月28日,TrollTech公司被Nokia以1.53亿美元收购,Nokia随后在2009年推出第一个官方IDE :Qt Creator,这个幻灯片正是根据一本同名书命名的,该书最初出版于2007年,因此 没有介绍Qt Creator,为什么选择QT?,Qt是一个跨平台的开发框架,横跨包括Unix/Linux/Mac/Windows/Meego等常见操作系统平台,并支持如Symbian/Window CE/单片机等多种嵌入式平台。“一次编写,随处编译”,即同样的代码,只需在新的系统上重新编译即完成了移植,大大降低了移植成本 Qt使用标准的面向对象机制,支持使用C+进行开发。如果使用Qyoto和Qt Jambi,同样可以使用C#和Java进行开发 Qt拥有250个以上的C+类,包含了无数方法,接口全部使用统一、友好的方式命名,对于一些没用过的方法不查文档也可以知道用法 Qt具有丰富的工具和帮助文档,可以实现一键查询用法 XML支持和Webkit引擎集成 QT遵循商业和开源双重协议 被Nokia合并后,Nokia即将以Qt作为塞班和meego的标准开发框架,Android是近几年才出现的名词,但是Qt在嵌入式领域已经发展了10年,Meego:Intel和Nokia为了对抗Chrome OS而开发的linux内核操作系统, 现已经应用于平板电脑和上网本,Next Limit Technologies的RealFlow 4 移植案例,当包括迪斯尼和 Pixar 在内的制片厂和视觉效果工作室需要生成水花飞溅、喷涌和漩涡效果时,他们常常求助于 Next Limit Technologies 及其 RealFlow 模拟软件。 Next Limit 于 2007 年因其出色的工作赢得了奥斯卡技术成就奖,这一成就让电影工作者可以逼真地绘制出水和其他液体的流动。 RealFlow 最初是基于 Windows 开发的应用程序,但却受到倾向于 Linux 的潜在客户的热捧。因此 Next Limit 没有将 Win32 代码移植到 Linux,而是使用 Qt 重新构建了软件。 Next Limit 开发人员只用了两个月就将 RealFlow 移植到 Qt。 Next Limit RealFlow 产品技术主管 Angel Tena 说“实在是太容易了。Qt 类设计的很好并易于使用。我们甚至常常不必去看文档。我们只要想出函数的名称,就会发现有一堆的函数可用。”,Qt by Nokia,1.Qt SDK的安装和使用,先到网上搜索“Qt 下载”,即可找到诺基亚官网上的下载链接 下载相应平台下的安装文件,Windows下直接双击运行安装,linux等一般须在终端启动之 安装完成后,Windows平台下应当进行环境变量配置,使程序启动时能够找到库 菜单中找到Qt Creator,点击运行即可 (演示:Qt Creator的应用),Qt Creator集成的构件,一个类Vim编辑器(支持语法高亮/自动补全/自动检查/正则表达式查找/代码折叠等) 一个编译器(Windows下默认为mingw,其他平台通常为g+) 一个调试器(Qdebug) 版本控制系统(Git/SVN/CVS等,需自行配置) 无处不在的文档帮助系统assistant 窗体设计器designer(支持控件直接拖放) 语言翻译器linguist(支持程序的多语言翻译) 演示例程系统qt demo(包含覆盖主要Qt应用的例程源码及文档) 程序测试编写与集成模块 若干工具链程序,甚至包括Qt3代码到Qt4代码的转换器(有人见过VC6转VC.NET的转换器了吗),Qt的传统用法,Qt Creator之前,已经有一些人开发了IDE,如linux下的KDevelop。但是也有人喜欢直接使用Qt的工具链进行应用程序的构建 (演示:直接使用终端工具构建) 构建步骤: 建立文件夹,以工程名命名,书写源代码 目录下运行 qmake -project (Windows下使用 Command Prompt而不是操作系统自己的命令行) qmake 工程名.pro make,面向对象的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缺陷与不足,Qt Creator是Nokia并购TrollTech后出品的IDE环境,因此仍与较多问题,其中有些问题可能会对初学者造成障碍,因此这里提出一二以供参考: 目前Qt Creator代码编辑器有时会出现自动补全失效的问题,属于正常现象(未解决的bug只好接受了),不要急躁 Qt Creator下方的错误信息显示不完整,有时如一些链接错误的输出信息不会被正确捕捉,建议出现诸如 Collect lld returned -1 status这样不甚明了的信息时,在终端中手动make一下,同样的还有运行时程序的意外退出,linux下诸如内存越界这样的问题也只会提示“ application terminated unexpectedly”,像程序需要特殊权限(如linux/unix)系统下就更不用说了 Qt跨平台的代价是

温馨提示

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

最新文档

评论

0/150

提交评论