【VC++开源代码栏目提醒】:网学会员,鉴于大家对VC++开源代码十分关注,论文会员在此为大家搜集整理了“C++ GUI QT4 编程 - 行政公文”一文,供大家参考学习!
C GUI QT4 Qt by NokiaCode less think morePage 2什么是QTQt是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 CreatorPage 3为什么选择QTQt是一个跨平台的开发框架横跨包括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年MeegoIntel和Nokia为了对抗Chrome OS而开发的linux内核操作系统现已经应用于平板电脑和上网本Page 4Next 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 类设计的很好并易于使用。
我们甚至常常不必去看文档。
我们只要想出函数的名称就会发现有一堆的函数可用。
”Page 5Qt by NokiaQt SDK的安装和使用面向对象的QtQt的signal/slot机制Qt工具链的缺陷Page 61.Qt SDK的安装和使用先到网上搜索“Qt 下载”即可找到诺基亚官网上的下载链接下载相应平台下的安装文件Windows下直接双击运行安装linux等一般须在终端启动之安装完成后Windows平台下应当进行环境变量配置使程序启动时能够找到库菜单中找到Qt Creator点击运行即可演示Qt Creator的应用Page 7Qt Creator集成的构件一个类Vim编辑器支持语法高亮/自动补全/自动检查/正则表达式查找/
代码折叠等一个编译器Windows下默认为mingw其他平台通常为g一个调试器Qdebug版本控制系统Git/SVN/CVS等需自行配置无处不在的文档帮助系统assistant窗体设计器designer支持控件直接拖放语言翻译器linguist支持程序的多语言翻译演示例程系统qt demo包含覆盖主要Qt应用的例程源码及文档程序测试编写与集成模块若干工具链程序甚至包括Qt3
代码到Qt4
代码的转换器有人见过
VC6转
VC.NET的转换器了吗Page 8Qt的传统用法Qt Creator之前已经有一些人开发了IDE如linux下的KDevelop。
但是也有人喜欢直接使用Qt的工具链进行应用程序的构建演示直接使用终端工具构建构建步骤建立文件夹以工程名命名书写源
代码目录下运行qmake -project Windows下使用Command Prompt而不是操作系统自己的命令行qmake 工程名.promakePage 9面向对象的Qt整个Qt是严格按照面向对象设计思想的因此Qt类给人的感觉是很简单易于使用signal/slot机制比起其他GUI开发库的机制更为简单灵活但是这也意味着使用Qt开发程序就不可能像MFC框架或者Win32编程那样可以不考虑设计就做出程序你必须设计好数据流和控制流的走向否则将来开发稍大规模的程序就容易陷入困境。
signal和slot必须是类才能使用功能完备的程序必须以类为主体这点上类似于java无论是使用控件拖放产生的窗体还是直接使用
代码创建的界面都最终使用继承或集成的方式被主体
代码所使用Page 10Qt的signal/slot机制GUI程序与传统命令行略有不同程序停在一个时间循环中等待用户事件每个开发库通常都会有一套机制来响应外界的事件如鼠标点击键盘命令等如Windows下MFC的消息响应机制linux下GTK的callback机制等。
Qt的则为signal/slot机制signal即信号slot即槽在Qt中他们都是以自定义函数形式存在的。
任何一个类只要类体前部书写Q_OBJECT即可使用Qt的信号/槽机制。
假设我规定我喊“一”一个同学马上站起来那么这个“一”就是我这个对象发出的信号“站起来就是这位同学对象的槽而这个规定的过程就是简单的通过一句connect来完成connect我SIGNAL喊一某同学SLOT站起来这样以后只要我喊一这位同学就会站起来正如你刚才所看到的
代码一样Page 11signal和slot在类体内通常声明为void型成员函数允许带参数signal 不需要实体slot必须要有实体否则错误就同声明一个函数却没有实体一样会发生链接错误深度解释signal/slot机制是利用C语言实现的一个巧妙机制本质上仍然是C。
经过connect之后所有发出信号的地方在预处理过程中都会被插入相应的slot
代码这就完成了对signal的响应。
这一点决定了Qt程序与MFC等程序的决定性不同。
记住这一点将来会对你处理某些棘手问题有帮助Page 12Qt缺陷与不足Qt Creator是Nokia并购TrollTech后出品的IDE环境因此仍与较多问题其中有些问题可能会对初学者造成障碍因此这里提出一二以供参考目前Qt Creator
代码编辑器有时会出现自动补全失效的问题属于正常现象未解决的bug只好接受了不要急躁Qt Creator下方的错误信息显示不完整有时如一些链接错误的输出信息不会被正确捕捉建议出现诸如Collect lld returned -1 status这样不甚明了的信息时在终端中手动make一下同样的还有运行时程序的意外退出linux下诸如内存越界这样的问题也只会提示“application terminated unexpectedly”像程序需要特殊权限如linux/unix系统下就更不用说了Qt跨平台的代价是需要较多的依赖库。
尽管我们知道MFC程序同样需要很多库但是这些库都已经被微软放到系统文件夹下了即使是现在的.Net框架也已经是默认安装好了但是Windows毕竟不是Nokia的产品所以程序要么静态编译成比较大的文件要么带许多库。
总之不是用来编写小程序在别人电脑上直接YY的理想平台感谢您的关注Opensource Club of CUMT本作品采用知识共享署名-非商业性使用2.5 中国大陆许可协议进行许可。
专业交流模板超市设计服务本作品的提供是以适用知识共享组织的公共许可简称“CCPL” 或“许可”条款为前提的。
本作品受著作权法以及其他相关法律的保护。
对本作品的使用不得超越本许可授权的范围。
如您行使本许可授予的使用本作品的权利就表明您接受并同意遵守本许可的条款。
在您接受这些条款和规定的前提下许可人授予您本许可所包括的权利。
查看全部…