[转载] QT开发简介

QT开发简介

 
Qt开发平台

    Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。html

    它提供给应用程序开发者创建艺术级的图形用户界面所需的所用功能。Qt是彻底面向对象的, 很容易扩展,而且容许真正地组件编程。自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的 Linux桌面环境KDE 的基础。 基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西,但Qt具备优良的跨平台特性、面向对象 、丰富的API、大量的开发文档等优势。web

 

 

QT开发环境正则表达式

    Qt Creator是一个用于Qt开发的轻量级跨平台集成开发环境。Qt Creator可带来两大关键益处:提供首个专为支持跨平台开发而设计的集成开发环境 (IDE),并确保首次接触Qt框架的开发人员能迅速上手和操做。编程

  Qt Creator包含了一套用于建立和测试基于Qt应用程序的高效工具,包括:浏览器

  一个高级的C++代码编辑器 上下文感知帮助系统 可视化调试器 源代码管理 项目和构建管理工具安全

    QT for Symbian 开发环境搭建:网络

http://www.developer.nokia.com/Community/Wiki/Qt_Symbian_开发环境安装 框架

 

Qt优点  异步

    面向对象编辑器

  Qt 的良好封装机制使得 Qt 的模块化程度很是高,可重用性较好,对于用户开发来讲是很是 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工做变得十分简单。

    丰富的 API

  Qt包括多达 250 个以上的 C++ 类,还提供基于模板的 collections, serialization, file, I/Odevice, directory management, date/time 类。甚至还包括正则表达式的处理功能。

  支持 2D/3D 图形渲染,支持 OpenGL

  大量的开发文档

  XML 支持

  Webkit 引擎的集成,能够实现本地界面与Web内容的无缝集成

  可是真正使得 Qt 在自由软件界的众多 Widgets (如 Lesstif,Gtk,EZWGL,Xforms,fltk 等等)中脱颖而出的仍是基于 Qt 的重量级软件 KDE 。

 

 

个人问题:

1:如何 用 Qt 访问 https ?

Qt 是支持 SSL的,可是因为某些法律和政策因素,QT的开发包里并无集成openSSL。QT采用两种方式调用openSSL,默认方式是动态加载openSSL的 DLL。
在Windows系统上默认没有openSSL,须要本身安装。 能够在这里下载源代码,本身编译
http://www.openssl.org/source/
也能够在这里下载编译好的版本,直接安装
http://www.slproweb.com/products/Win32OpenSSL.html

若是要静态连接ssl,那就要本身从新编译QT才行,首先设置环境变量 OPENSSL_LIBS,指向你的openSSL的lib目录,而后执行configure的时候使用如下参数
configure -openssl-linked

使用方法和简单和普通的 http请求没什么不一样。

QUrl url(http://code.google.com");
QHttp *http = new QHttp();
http->setHost(url.host(), QHttp::ConnectionModeHttps, url.port());
QFile *file = new QFile("index.htm");
file->open(QIODevice::WriteOnly)
int httpGetId = http->get(path, file);

因为QHttp是异步调用,你须要链接几个signal来获取下载进度。
在S60平台,以上代码也是能够运行的,须要注意的是在 Qt 4.6 beta版本里我怀疑有个bug,qt会在s60上试图去加载 ssleay32.dll,可是在s60上openSSL的DLL名字是 libssl.dll。这个问题已经在最新的 QT 4.6 正式版本里修复了,请更新到最新的QT. 另外,若是以上代码在 S60上运行,这个 index.htm文件会被建立在程序的私有目录里,这个目录是文件管理器看不到的,因此要改为 相似 c:\\index.htm的名字,好用来验证下载是否正确。  

如今的 QT 其实并不推荐继续使用 QHttp了,应该用 QNetworkAccessManager,这是一个更先进的网络链接服务,其行为和你的浏览器基本一致,包括了代理和缓冲的支持,因此这也是QT webkit使用的链接方式。

 

 

2: 怎样在 S60 Qt 程序里调用 Symbian API

Qt程序启动的时候已经具有了基本的调用 Symbian API的环境,cleanupstack, ActiveScheduler 都有了。

因此能够直接包含Symbian的头文件,就像普通Symbian 程序里面那样调用就行了,惟一的问题是怎么包含library.
qt是用 pro描述工程文件的,那个mmp文件其实是qmake经过 pro文件生成的,因此不能在mmp里加 library,这样的话你从新执行qmake就要从新改mmp.

正确的方法是,在pro文件里添加下面这行

symbian:LIBS += -l<lib file name>

例如:symbian:LIBS += -lcommonengine,  生成的 mmp文件里就会有  LIBRARY commonengine.lib
注意若是是 DLL的 lib,在 pro文件里是不须要写lib扩展名的,若是你写了,qmake就会认为你须要的是一个static library, 就会生成  STATICLIBARAY commonengine.lib

 

转载:http://blog.51cto.com/lhqvip

相关文章
相关标签/搜索