Qt Webkit可以做什么(二)——显示网页&获取网络服务
2011-09-29 09:53
405 查看
作 者: Dawei Cheng 程大伟 (Intel) (10 篇文章) 日期: 六月 8, 2010 在 2:21 下午
在第二篇我们实现一个非常简单的例子。使用Qt WebKit显示网页。
注: 这个demo网上有很多,包括nokia Qt 的doc 和example 官方文档里也有相关例子。但是有不全面的地方,在编译运行时甚至会显示不出网页,这是因为几个小地方没有注意到,可能有的博主自己并没有实际去编译。鉴于这个demo很简单,就全部源代码贴上。
1. 新建main.cpp
#include <QtGui>
#include <QtWebKit>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//设置网络代理:使用系统代理
QNetworkProxyFactory::setUseSystemConfiguration(true);
//显示网页
QWebView view;
view.load(QUrl(http://qt.nokia.com));
view.show();
return a.exec();
}
2. 新建 web.pro 文件
显示网页只需要区区这几行源代码即可,但是在.pro文件中,需要做如下更改
QT += webkit\network //此处不仅需要webkit模块,还需要network模块。因为Webkit依赖于network
HEADERS =
SOURCES = main.cpp
RESOURCES =
3. 编译运行
$ qmake -project
$ qmake
$ make
$ ./web
运行结果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201204/882ef04fd9b23a74fb88b134928ed61b)
要提高响应时间,我们可以增加缓存系统。QDesktopServices::storageLocation 中的 CacheLocation 枚举函数可处理在跨平台情况下,指定存储位置的情况。使用QabstractNetworkCache 接口,可以自己实现并使用定制的缓存系统。
以下四行代码就可增加本地缓存来提高响应时间:
QNetworkDiskCache *diskCache = new QNetworkDiskCache(this);
QString location =QDesktopServices::storageLocation(QDesktopServices::CacheLocation);
diskCache->setCacheDirectory(location);
networkAccessManager->setCache(diskCache);
部分网站提供的不仅有内容,还有多种服务。网络服务的内容从货币汇率信息到企业应用程序接入外部网络的连接,多种多样。借助 Qt WebKit 集成,可在应用程序中使用这些网络服务。例如Twitter认证请求的代码:
QNetworkRequest request(“http://twitter.com”);
req.setRawHeader("Authorization", basicBase64);
QNetworkReply *reply = manager->get(request);
Qt webkit中如何显示网页和使用网络服务介绍到此。
第三篇将介绍在Qt webkit中如何去使用web扩展功能,即 HTML/CSS/JS 工具去设计application。
分类:
其他,
移动技术,
英特尔® 软件网络 2.0
标签:Qt,
qtwebkit
在第二篇我们实现一个非常简单的例子。使用Qt WebKit显示网页。
注: 这个demo网上有很多,包括nokia Qt 的doc 和example 官方文档里也有相关例子。但是有不全面的地方,在编译运行时甚至会显示不出网页,这是因为几个小地方没有注意到,可能有的博主自己并没有实际去编译。鉴于这个demo很简单,就全部源代码贴上。
1. 新建main.cpp
#include <QtGui>
#include <QtWebKit>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//设置网络代理:使用系统代理
QNetworkProxyFactory::setUseSystemConfiguration(true);
//显示网页
QWebView view;
view.load(QUrl(http://qt.nokia.com));
view.show();
return a.exec();
}
2. 新建 web.pro 文件
显示网页只需要区区这几行源代码即可,但是在.pro文件中,需要做如下更改
QT += webkit\network //此处不仅需要webkit模块,还需要network模块。因为Webkit依赖于network
HEADERS =
SOURCES = main.cpp
RESOURCES =
3. 编译运行
$ qmake -project
$ qmake
$ make
$ ./web
运行结果如下:
要提高响应时间,我们可以增加缓存系统。QDesktopServices::storageLocation 中的 CacheLocation 枚举函数可处理在跨平台情况下,指定存储位置的情况。使用QabstractNetworkCache 接口,可以自己实现并使用定制的缓存系统。
以下四行代码就可增加本地缓存来提高响应时间:
QNetworkDiskCache *diskCache = new QNetworkDiskCache(this);
QString location =QDesktopServices::storageLocation(QDesktopServices::CacheLocation);
diskCache->setCacheDirectory(location);
networkAccessManager->setCache(diskCache);
部分网站提供的不仅有内容,还有多种服务。网络服务的内容从货币汇率信息到企业应用程序接入外部网络的连接,多种多样。借助 Qt WebKit 集成,可在应用程序中使用这些网络服务。例如Twitter认证请求的代码:
QNetworkRequest request(“http://twitter.com”);
req.setRawHeader("Authorization", basicBase64);
QNetworkReply *reply = manager->get(request);
Qt webkit中如何显示网页和使用网络服务介绍到此。
第三篇将介绍在Qt webkit中如何去使用web扩展功能,即 HTML/CSS/JS 工具去设计application。
分类:
其他,
移动技术,
英特尔® 软件网络 2.0
标签:Qt,
qtwebkit
相关文章推荐
- Qt Webkit可以做什么(二)——显示网页&获取网络服务
- Qt Webkit可以做什么(二)——显示网页&获取网络服务
- Qt Webkit可以做什么(二)——显示网页&获取网络服务
- Qt Webkit可以做什么(二)——显示网页&获取网络服务
- Qt webKit可以做什么(四)--实现本地QObject和JavaScript交互
- 使用Qt将一系列图片通过网络发送到客户端动态显示的参考代码(修改一下可以用作远程网络监控)。
- Qt WebKit 可以做什么?(一)——认识Qt webkit
- Qt webKit可以做什么(四)——实现本地QObject和JavaScript交互
- window7 输入什么命令可以快速打开服务管理?? 虚拟机设置了NAT网络连接方式,还是无法上网?
- [python&php 网络编程]通过端口号获取服务名
- Qt WebKit可以做什么(三)——开发包含丰富web内容的本地应用
- SeimiAgent——基于QtWebkit的通用网页渲染代理服务
- Qt WebKit 可以做什么?(一)——认识Qt webkit
- Qt: 网络编程实例,QNetworkAccessManager获取网页数据
- 使用Qt将一系列图片通过网络发送到客户端动态显示的参考代码(修改一下可以用作远程网络监控)
- Qt WebKit 可以做什么?——认识Qt webkit
- Qt WebKit可以做什么(三)——开发包含丰富web内容的本地应用
- 关于使用了QtWebKit的PyQt程序打包后无法显示网页图片的问题(Mac0S和windows)
- QT中使用webkit显示网页
- Qt webKit可以做什么(四)——实现本地QObject和JavaScript交互