Chromium™和Qt的实验性工作

作者:Liang Qi | Jun 26, 2013 8:51:03 AM

原文链接:Zeno Albisser - Experimenting with Chromium™ and Qt

Chromium是一个开源项目,它也是Chrome浏览器的核心。它不仅负责HTML渲染,而且还是WEB平台的一个完整实现——从网络栈到多媒体框架。

和Qt一样,它在多个桌面系统和移动平台上都是可用的。那么Qt开发人员如何在Qt的世界中使用它呢?

好吧,在过去的几周内,我们在忙于这样一个实验性的项目。今天我们来展示一下工作原型,它演示了如何把Chromium集成到Qt Quick 2和窗口部件中。

在这个原型中,尽管跨平台支持并不是我们的主要焦点。我们还是尽量保证对Chromium的修改做到最小。这也就是为什么我们在这个项目中使用gypnijia作为构件系统——它们可以很容易地和qmake项目一起工作。

请您来尝试一下,并且把您的意见和建议反馈给我们。只要按照如下指令,您就可以简单地构建和运行实例。不过,请注意,目前这一原型只是实验性工作。所以没有稳定的API,并且没有任何后续支持的承诺

获得源码并且构建原型

要构建和运行这个原型,您需要有一个较新版本的Qt5(v5.1.0-rc1)的构建。

在Ubuntu上安装构建依赖:

sudo apt-get build-dep chromium-browser

安装Chromium的depot_tools并且获取Chromium的源码(这也许要一段时间):

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=$PWD/depot_tools:$PATH
fetch chromium --nosvn=True
export CHROMIUM_SRC_DIR=$PWD/src

克隆QtWebEngine仓库并且打上我们的Chromium补丁:

git clone git://gitorious.org/qt-labs/qtwebengine.git
./qtwebengine/patches/patch-chromium.sh

构建QtWebEngine:

cd qtwebengine && qmake && make

运行实例

QtWebEngine仓库包含两个实例应用程序。一个使用了Qt Quick 2,另外一个使用了窗口部件。实例就是一个简单的浏览器,其中使用了基于Chromium的网页视图。

两个实例的代码在examples子目录,并且可以在命令行中运行。

已知问题

  • 现在这个原型只支持Linux/X11平台。
  • 还没有集成QNetworkAccessManager。