qt做web服务器,qtwebkitwidgets
Qt Webkit能做什么(2) ——显示网页获取网络服务——中文-英特尔软件网络
Qt Webkit能做什么(2) ——显示网页获取web服务程大位程大伟(英特尔)(38篇文章)
日期:2010年6月8日下午2:21在第二篇文章中,我们实现了一个非常简单的例子。使用Qt WebKit显示网页。
注意:网上有很多demo,包括官方doc中的相关例子和诺基亚Qt的示例文档。但也有一些不完整的地方,编译运行时甚至无法显示网页。这是因为有几个小地方没被注意到,有些博主可能实际上并没有自己编。由于这个演示非常简单,粘贴所有的源代码。
1.创建新的main.cpp
#包含QtGui
#包含QtWebKit
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
//设置网络代理:使用系统代理。
QNetworkProxyFactory:setUseSystemConfiguration(true);
//显示网页
QWebView视图;
view . load(QUrl(http://Qt . Nokia . com));
view . show();
返回a . exec();
}
2.创建新的web.pro文件
显示网页只需要几行源代码,但是在。pro文件,需要进行以下更改。
QT=webkitnetwork //这里不仅需要webkit模块,还需要network模块。因为Webkit依赖于网络
标题=
SOURCES=main.cpp
资源=
3.编译并运行
$ qmake-项目
$ qmake
$ make
$ ./web
运行结果如下:
为了提高响应时间,我们可以增加缓存系统。qdek Services:Storage Location中的CacheLocation枚举函数可以处理在跨平台情况下指定存储位置的情况。使用QabstractNetworkCache接口,可以自己实现和使用定制的缓存系统。
以下四行代码可以增加本地缓存以改善响应时间:
QNetworkDiskCache * disk cache=new QNetworkDiskCache(this);
QString location=QDesktopServices:storage location(QDesktopServices:cache location);
diskCache- setCacheDirectory(位置);
networkAccessManager-set cache(disk cache);
有些网站不仅提供内容,还提供各种服务。网络的内容多种多样,从货币汇率信息到企业应用程序与外部网络的连接。通过Qt WebKit集成,可以在应用程序中使用这些网络服务。例如,Twitter认证请求的代码:
QNetworkRequest请求(" http://witter . com ");
req . setrawheader( Authorization ,basic base 64);
QNetworkReply * reply=manager-get(请求);
这里介绍如何在Qt webkit中显示网页和使用web服务。
第三部分将介绍如何使用web扩展功能,即HTML/CSS/JS工具来设计Qt webkit中的应用程序。