zoukankan      html  css  js  c++  java
  • Qt Webkit可以做什么(二)——显示网页&获取网络服务

    Qt Webkit可以做什么(二)——显示网页&获取网络服务 – 中文 - 英特尔® 软件网络

    Qt Webkit可以做什么(二)——显示网页&获取网络服务

    作者: Dawei Cheng 程大伟 (Intel) (38 篇文章)
    日期: 六月 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
    运行结果如下:
    Picture4.png

    要提高响应时间,我们可以增加缓存系统。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。

  • 相关阅读:
    网页编码就是那点事
    .NetCore通过EFCore操作数据库
    我的第一个.netcore程序
    VisoStudio 允许局域网联机调试网站
    MVC 中使用扩展方法
    MVC 简单发送邮件示例
    ASP.NET MVC路由配置
    SQL 存储过程语句拼接愁人的时间类型
    生成并返回 json 结果文件
    Windows Live Writer配置测试
  • 原文地址:https://www.cnblogs.com/lexus/p/2442074.html
Copyright © 2011-2022 走看看