设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

超越MFC的诺基亚开源GUI库:Qt

2010-5-17 10:29| 发布者: joejoe0332| 查看: 9417| 评论: 7

  在Visual Studio 2003/2005/2008下开发Windows图形界面程序,程序员一直做着抉择:选择.net平台,则意味着需要XP用户安装.net Framework, 而且自己不能手工控制某些代码的优化;选择原生C++/MFC平台,则意味着需要编写繁琐的代码(VS2008甚至裁掉了基于MFC的GUI Designer,所有MFC GUI代码,除IDE内置的可怜的框架外,必须手工产生)。

  自从Visual Studio 2002发布以来,微软一直在C++平台推C++向.NET平台的转换,先后推出了Managed C++和其升级版本C++/CLI,而对原生运行的C++一直冷淡,除了更加符合标准之外,几乎没有新的库加入。而同时,开源阵营的C++平台迅速发展。其一是GCC4大幅度提升了编译优化,二进制码质量已经超过了原生编译的Visual C++;其二是一系列开源跨平台的GUI库(例如Qt、WxWidgets、GTK等)的蓬勃发展,已经达到和超过了一代巅峰Visual C++ 6.0(MFC库)的水平了。

  下面笔者就向大家简要介绍Qt这个库。笔者个人认为,在Qt、WxWidgets、GTK三个开源C/C++库中,Qt的设计思路、IDE支持、代码执行速度都达到了较好的(至少,能和微软的Visual C++/CLI媲美)的水平。(GTK是基于C的,也是面向对象风格,比较适合C开发者。)

  历史

  Qt本来是trolltech公司设计的一个跨平台库。2008年trolltech被诺基亚收购,Qt就成了诺基亚的官方GUI界面库。

  包含的模块(摘自维基百科)

* QtCore—QtCore模块是所有基于Qt的应用程序的基础,提供信号与槽的对象间通信机制、IO、事件和对象处理、多线程
* QtGui—包含了开发图形用户界面应用程序所需的功能。使用其支持的各个平台的本地图形API。支持反锯齿、向量形变。支持ARGB顶层 widget
* QtMultimedia
* QtNetwork—提供了网络程序设计功能。支持通用协议,如HTTP、FTP和DNS,包括对异步HTTP 1.1的支持。与较低层的TCP/IP和UDP协议,如QTcpSocket、QTcpServer和QUdpSocket
* QtOpenGL—提供在应用程序中使用OpenGL和OpenGL ES加入3D图形。在Windows平台上亦支持Direct3D
* QtOpenVG
* QtScript— 包含完全集成的ECMA标准脚本引擎。提供信号与槽机制简化对象间通信和QtScript调试器。
* QtScriptTools—额外的Qt Script组件
* QtSql—将数据库集成至应用程序。支持所有主要的数据库驱动包括ODBC、MySQL、PSQL、SQLite、 ibase、Oracle、Sybase、DB2。
* QtSvg—支持SVG格式
* QtWebKit—集成WebKit,提供了HTML浏览器引擎,便于在本地应用程序中嵌入网络内容和服务。
* QtXml—提供了XML文档的阅读器和编写器、支持SAX和DOM。
* QtXmlPatternsl—提供了XQuery和XPath引擎支持。
* Phonon—集成Phonon,支持跨平台应用程序播放音频和视频内容。
* Qt3Support—模块提供兼容Qt 3.х.х版本的程序库

  从上面可以看出,Qt可以取代自Visual C++ 6.0中就开始支持的MFC、Winsock、MSHTML、MSXML、MSDXM(以及后来的Windows Media Player控件)、ADO数据访问等模块。

  开发环境IDE

  开发环境是程序员最为关注的,Windows平台微软VC++、VB、C#系列语言的成功,就是因为有了强大的Visual Studio开发环境.

 


酷毙

雷人
1

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部