• 9352阅读
  • 0回复

【原创】【编著】【技术专题】qt飞翔的心 (第一章 概论) [复制链接]

上一主题 下一主题
离线fanyu
 
只看楼主 倒序阅读 楼主  发表于: 2005-09-01
现在我是一个没有开发压力的技术编辑。我仍旧喜爱C++, 仍旧喜欢研究各种类库和framework。但是由于没有开发压力, 我可以用“ 好玩” 、“ 优美” 这一类的词来评价它们, 这真是一件愉快的事情。我个人最喜欢的framework是MFC, 但是MFC只应用在Windows下,并且用了太多的微软扩展特性, 这就让它成了一个“ 不好玩”的framework。第一次听说Qt是从一个朋友的口中,他告诉我这是一个具有强大跨平台能力的framework,在Windows和Linux之间移植软件完全不用修改代码。同时这也是一个开放源代码的framework——这让我立刻想到:Qt很可能是一个“好玩”的framework。
    2001 年11月15日, 下载了一个Qt 2.3 for Windows 非商业版,开始了我与Qt的初接触。强大的QtQt的GUI风格与Java的Swing库有几分相似, 不过不要被表面现象迷惑:Qt并不是一个轻量级的framework。相反,Qt在Windows下编译出的程序很可能比MFC程序还要大, 而且还需要重达几兆的动态链接库支持。而且, 编译一个Qt程序需要先用moc预编译, 需要先翻译XML资源文件, 使得它的编译速度大大降低。这都让许多人对它诟病诸多。但是这些开销换来的是强大的功能, 尤其是极强的可移植性。Qt对不同的操作系统做了近乎完美的封装, 使得它能够提供真正的“ 一次编码, 到处编译” 的静态移植能力。与Java的动态移植能力不同, 这种静态移植将软件的效率损失也降到了最低, 从而能得到更加广泛的应用。Linux上常见的GUI系统KDE就是用Qt开发的, 这足以证明Qt的强大。
    开放的Qt:现在的Qt遵循GPL协议,开放主要源代码,用户也可以遵循GPL的规定自由添加自己的新特性。经常听朋友说“开放的软件才有生命力” , 那么Qt 应该是很有生命力的一个framework了。对于程序员来说, 一个开放的framework也更容易学习和掌握。好玩的Qt为了获得“一次编码,到处编译”的强大跨平台移植能力,Qt的设计者们尽量用通用的格式来封装平台相关(乃至编译器相关) 的内容: 预编译器处理后生成的全部是标准C++代码; 资源文件用XML格式保存; 不采用C++内建的RTTI和高级模板特性,而是在单根继承体系中用面向对象的方式实现动态方法调用。 这就让Qt 成了一个真正“好玩” 的f r a m e w o r k 。其中的一些很有趣的特性, 如property、消息处理、组件模型等等,你都可以用标准C++模拟出来。对于想学习framework体系设计的C++程序员来说,Qt具有相当高的研究价值。飞翔的心Qt是一个相当开放的framework,用Qt开发的软件能够在Windows、Unix、Linux、Mac平台之间轻松地移植,让程序员有一种飞翔般的轻松感觉。但是,一颗真正能够飞翔的心应该在每个C++程序员那里。当你为跨平台移植费尽心力的时候,当你为自己的软件打满丑陋的补丁的时候,你的心曾经变得那么沉重,不是吗?也许你应该试试Qt,让自己的创造力任意飞翔。
    Ending and Beginning 我的废话到此为止,对Qt的介绍即将开始。在下面的五篇文章中,三位作者将从专家的角度来向你介绍Qt、分析Qt的精妙设计、教你应用Qt的技巧,最后还将带你认识一个用Qt实做的小软件。作者郑巍维护着目前全世界唯一的Qt中文网站(http://www.joyinternet.net/cn/qt/) , 他的网站为中国的C++程序员学习Qt提供了大量有价值的资料,并且也是本次专题主要的内容来源。另两位作者傅建兵和毛银杰所效力的公司致力于在Qt平台上为证券业提供高质量的应用软件,两人也为本次专题提供了大力的支持。准备好了吗?OK,Let’s Go!
快速回复
限100 字节
 
上一个 下一个