Qt / Web 混合编程
< Qt
Jump to navigation
Jump to search
Qt/Web混合编程
Qt/Web混合应用的出现[edit | edit source]
今天人们生活、工作在一个互联互通的世界里。人们希望随时随地获得需要的信息。在此背景下,传统应用和WEB应用的界限越来越模糊。Qt/Web混合型应用的出现,结合了两者的优势,代表了引用开发的一种新方向。
利用QtWebKit、QtNetwork等模块,我们可以很方便地把Qt C++与HTML、JavaScript、CSS结合起来,构建出一个混合应用。通过QtXmlPattern,可以下载、转换、查询XML格式的内容并轻松呈现给用户。
混合应用的结构[edit | edit source]
与WRT widget相比:
混合应用的特点与功能[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]
- 把QObject加入到Javascript上下文中
- 通过JavaSript调用暴露的QObject的slot
- 连接QObject的signal与JavaScript slot
- WRT widgets移植为Qt应用
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]
- 混合应用生成器 能帮助把 HTML 文件,WRT widget 转为 Qt 应用,目前是alpha版本。