Qt Webkit可以做什么(二)——显示网页&获取网络服务
2011-02-25 16:55
489 查看
在第二篇我们实现一个非常简单的例子。使用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。
注: 这个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。
相关文章推荐
- Qt Webkit可以做什么(二)——显示网页&获取网络服务
- Qt Webkit可以做什么(二)——显示网页&获取网络服务
- Qt Webkit可以做什么(二)——显示网页&获取网络服务
- Qt Webkit可以做什么(二)——显示网页&获取网络服务
- 从网络中获取图片显示,获取网页源码
- window7 输入什么命令可以快速打开服务管理?? 虚拟机设置了NAT网络连接方式,还是无法上网?
- Android 本地加载网页&显示网络图片
- [python&php 网络编程]通过端口号获取服务名
- ajax返回的数据 用easyui的datagrid的表格来循环显示,用灰色背景的是隐藏的列。点击可以获取到隐藏的值
- [python&php 网络编程]设定并获取socket超时时间
- 获取本地视频,网络视频的第一帧图片,使之显示出来
- 新浪的网页背景特效,可以关闭不显示
- 求助:有什么控件可以显示PDF文件啊?
- java获取一段文字的url地址并以链接的形式显示在网页上
- qt 通过http获取网络图片并且显示
- 通过URL和HTTP请求获取网络资源两者有什么区别
- 纯php文件 关闭标签?>可以不写 防止末尾出现异常的空格什么的。。。
- C# 网络编程之webBrowser获取网页url和下载网页中图片
- oracle 监听启动的时候 lsnrctl start 的显示 什么服务read unknown 之类的解释
- 为什么通过sp & ~(THREAD_SIZE - 1) 可以获取到 task_struct