Qt / Web 混合编程

From Qt Wiki
< Qt
Jump to navigation Jump to search

Template:ArticleMetaData

Qt/Web混合编程


Qt/Web混合应用的出现[edit | edit source]

  今天人们生活、工作在一个互联互通的世界里。人们希望随时随地获得需要的信息。在此背景下,传统应用和WEB应用的界限越来越模糊。Qt/Web混合型应用的出现,结合了两者的优势,代表了引用开发的一种新方向。

  利用QtWebKit、QtNetwork等模块,我们可以很方便地把Qt C++与HTML、JavaScript、CSS结合起来,构建出一个混合应用。通过QtXmlPattern,可以下载、转换、查询XML格式的内容并轻松呈现给用户。

混合应用的结构[edit | edit source]

File:QtHybrid1.jpg

  与WRT widget相比:

File:QtHybrid2.jpg

混合应用的特点与功能[edit | edit source]

  混合应用很大程度上依赖于QtWebKit。作为一个现代、高效的HTML渲染引擎,它支持如下功能:

  • 标准化的渲染引擎(兼容ACID3)
  • 可以通过CSS来变换页面元素(包括旋转、缩放、扭曲、平移等效果)
  • 基于CSS的动画,如淡入、淡出效果。
  • 支持通过<video>标签嵌入视频内容
  • 整页面缩放(支持字体、图像缩放)
  • 通过NPAPI插件支持第三方媒体格式
  • 高效的JavaScript引擎

  另一方面,QtWebKit也支持本地应用与Web内容之间的交互。

  • 通过<object>标签在网页中嵌入Qt 控件(包括C++代码)。
  • 通过JavaScript访问Qt对象。
  • 通过Qt访问JavaScript。
  • 共享客户端存储。通过C++或JavaScript可以访问同一数据库,方便大量数据的共享。

混合应用的优势[edit | edit source]

  与WRT Widget比较,混合应用有如下特点:

  • WRT Widget有功能限制,一些平台功能无法访问。混合应用作为本地应用,没有功能限制。
  • WRT Widget的代码是解释执行的,是开放的。这种特性使它失去了对某些内容的保护。混合应用是编译后的二进制代码, 利于内容保护,提高执行效率。

  与普通应用相比,

  • 有别于传统的UI,可以用Web,flash等技术制作出更绚的效果。
  • 更易于把一些Web应用转换为Qt C++应用。

详细信息[edit | edit source]

QML 与 Web[edit | edit source]

   QML 作为Qt的一部分,是用来描述用户界面的。作为一种标记性语言,它具有简单、易用、高效的特点。它也是一种声明性的语言,即文件内容由实例定义和属性赋值组成。它的自身逻辑用JavaScript描述。

  QML 包含有WebView元素。该元素能够加载、显示和操纵Web页面。 结合JavaScript语言,可以实现QML/Web混合编程。不仅如此,QML将会支持地图、导航以及Mobility API,这将极大地丰富原有Web应用的功能,使得创建Web应用既简单又精彩。

  具体可参考 WRT widgets移植为Qt应用

相关资料[edit | edit source]