您的位置:首页 > Web前端 > HTML5

乘风破浪,遇见最美Windows 11之现代Windows桌面应用开发 - QT(v5.4)支持HTML5混合开发(Hybrid Development)

2022-02-24 12:32 1631 查看

2014年12月17日,Qt v5.4正式版发布,支持HTML5混合开发

Qt是一个基于C++、适用于跨平台应用和用户界面(UI)开发的框架,它支持多种桌面、嵌入式和移动操作系统。Qt不但能够开发GUI程序,还能够用于开发非GUI程序。近日,从Qt的官方博客中得知,最新版本的Qt 5.4正式版发布,现已提供下载。该版本实现了HTML5混合开发的支持、新增Windows Phone平台的支持、改进了对Android和iOS平台的支持等众多新特性。从而使得开发者创建原生C++性能的连接设备和精彩应用变得更加简单,并更加利于企业的多屏幕适应和物联网战略。

该版本主要的更新内容如下:

混合开发方面

  • 重新设计了与HTML5 Web交互的引擎,推出基于Chromium的Qt WebEngine,从而实现了HTML5和QT混合开发的支持,另外,Qt WebEngine还提供了跨平台的API,集成了QT的图像库。
  • 该版本是最后一个支持WebKit的版本,在今后发布的版本中将停止对于WebKit的支持
  • 在商业授权协议和LGPLv3授权协议下推出了Qt WebView,且支持iOS和Android,从实现了利用原生的操作系统浏览器引擎整合网页内容
  • 新增了Qt WebChannel模块,该模块提供了在QML/C++和HTML/Javascript之间的一个简单、易用的桥接,从而使得开发能够使用Qt和Web技术进行混合开发。

移动平台

  • 通过Qt提供的Windwos的运行时实现了对跨平台的支持,已经实现了对Windows Phone 8.1,并完全支持桌面和嵌入式平台。
  • 改进了对Android 5.0、iOS 8和Xcode 6的支持。

图形方面

  • 引入了Qt Quick 2D Renderer插件,使Qt Quick的图形不用OpenGL也能够运行,使得Qt Quick能够在没有GPU的低端设备上运行。
  • Qt Quick Compiler 2.0,进一步缩短了设备启动时间
  • Qt Data Visualization升级到了1.2版本、Qt Charts升级到了2.0版本。

其他方面

  • 为了满足可穿戴设备和物联网开发的需求,Qt 5.4还提供了蓝牙低能耗支持的技术预览版本
  • Qt Creator升级到了3.3版本,该版本提供了全新的Qt Quick Designer和许多其它提高工作效率的功能
  • Qt Qml通过引入新的QtQml.StateMachine实现了对Qt State Machines的支持
  • 新增了设备创建的支持

Qt v5.4发布消息公布后,Reddit上也有了相关评论,有人认为现在Qt走了大而全的路线,有人提出了5.4版本是否仍有4.0版本那么易用的疑问。

用户lykwydchykyn评论到:

一直期待着Qt WebEngine,现在终于可以丢弃Qt WebKit了。

Qt公司为Digia于2014年9月份成立的全资子公司,主要负责Qt的产品开发、商业化以及依据商业和开源授权协议进行授权。通过Qt实现的著名软件包括3D建模和动画软件Autodesk Maya、暴雪公司开发的游戏对战平台battle.net、三维虚拟地图软件Google地球、虚拟机软件VirtualBox、EA出品的著名赛车类游戏极品飞车等众多著名软件。

QtWebEngine

https://wiki.qt.io/QtWebEngine

Qt WebEngine将Chromium快速发展的网络功能整合到Qt中

我们的目标是将网络平台的最新和最好的实现带入Qt的世界。与Qt的整合集中在一个易于使用,但可扩展的API。我们在图形集成方面也毫不妥协,将Chromium的图层渲染直接集成到Qt Quick的OpenGL场景图中

与Chromium的关系

QtWebEngine使用了Chromium项目的代码。然而,它并不包含Chrome/Chromium的全部内容。

  • 二进制文件(Binary files)被剥离出来了
  • 与谷歌平台(Google platforms)对话的辅助服务被剥离出来了
  • 代码被固定下来,以便在其他编译器上构建,而不是谷歌的特殊修改版clang。
  • 代码库被模块化,以允许使用系统库,如libpng、libjpeg和许多其他库。

在Qt发布之前,我们确实更新到了最新的Chromium版本。在发布之后,一些错误的修正和安全补丁会被回传。对于Qt的LTS版本,我们也可能在补丁级别的版本中更新Chromium。

和Chromium版本对应关系

https://wiki.qt.io/QtWebEngine/ChromiumVersions

作为每个Qt WebEngine版本一部分的Chromium版本可以通过以下方式确定。

git show v5.12.0:tools/scripts/version_resolver.py | pcregrep -o1 "chromium_version *= *'(.*)'"
Qt Version Chromium Version
6.2.0 90.0.4430.228
5.15.3–5.15.x 87.0.4280.144
5.15.2 83.0.4103.122
5.15.0–5.15.1 80.0.3987.136
5.14.0–5.14.1 77.0.3865.98
5.13.0–5.13.2 73.0.3683.105
5.12.0–5.12.7 69.0.3497.113
5.11.0–5.11.3 65.0.3325.151
5.10.1 61.0.3163.140
5.10.0 61.0.3163.99
5.9.0–5.9.9 56.0.2924.122
5.8.0 53.0.2785.148
5.7.0–5.7.1 49.0.2623.111
5.6.3 49.0.2623.111
5.6.0–5.6.2 45.0.2554.101
5.5.0–5.5.1 40.0.2214.115
5.4.0–5.4.2 37.0.2062.103

如何尝试QtWebEngine

https://wiki.qt.io/QtWebEngine/How_to_Try

QtWebEngine不能被静态构建。当静态构建开始时,它将跳过这一部分,显示 "不支持QtWebEngine的静态构建。"并继续构建。

1. 获取代码

QtWebEngine的源代码可以在 http://code.qt.io/cgit/qt/qtwebengine.git/ 找到。

2. 构建QtWebengine

  • 对于Windows,请看这里

虽然这隐藏在我们的构建系统中,但构建依赖于gyp和ninja(与chromium源一起获取)来构建chromium,因此除了通常的Qt5嫌疑人外,还需要构建对python的依赖。目前你至少需要Qt 5.4来构建QtWebEngine。

注意:如果你有64位的Linux主机,你需要安装一个额外的32位multilib包(至少是:linux-libc-dev:i386, linux-headers-xxx:i386)。

  • 在Ubuntu上安装依赖项
sudo apt-get install bison build-essential gperf flex python2 libasound2-dev \ libcups2-dev libdrm-dev libegl1-mesa-dev libnss3-dev libpci-dev libpulse-dev libudev-dev nodejs \ libxtst-dev gyp ninja-build
  • 在Ubuntu 20.04+上安装额外的依赖项

为了节省一点时间,从qtwebengine.git编译捆绑的变体

sudo apt-get install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev \ libfontconfig1-dev libxss-dev libsrtp0-dev libwebp-dev libjsoncpp-dev libopus-dev libminizip-dev \ libavutil-dev libavformat-dev libavcodec-dev libevent-dev libvpx-dev libsnappy-dev libre2-dev libprotobuf-dev protobuf-compiler

请注意,这些库在其他发行版上也需要安装,尽管软件包名称和预装的库集可能因使用的发行版而不同。

  • 在Fedora上安装依赖项
sudo yum install "qt5-*"
sudo yum install mesa-libEGL-devel libgcrypt-devel libgcrypt pciutils-devel nss-devel libXtst-devel gperf cups-devel pulseaudio-libs-devel libgudev1-devel systemd-devel libcap-devel alsa-lib-devel flex bison ruby

要构建一个发布版(一般推荐),请执行

qmake -r CONFIG+=release
  • 构建

如果你从git克隆了Qt WebEngine作为一个单独的模块,你可能需要初始化出包含Chromium和Ninja代码的src/3rdparty子模块:

cd qtwebengine git submodule update --init

确保你的

$PATH
指向一个python 2版本的二进制文件。现在很多系统默认使用python 3。

编译

qmake -r make sudo make install

参考

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐