基于QML和WebGL开发网页端
2018-03-14 14:50
288 查看
Qt发布的5.10版本,其中包含了WebGL的插件,属于无屏设备的显示方案。
QtWebGL:服务端运行应用程序,客户端(即浏览器)负责画面的渲染。使用WebGL的形式传输画面渲染命令。
如今新的WebGL的扩展意味着QML开发的程序可以直接在到浏览器中使用(WebGL底层也是OpenGL/ES,请注意区分)。但是,可以在浏览器中使用不意味着程序是跑在浏览器上的。 准确的说,程序逻辑任然运行在本地,在Windows上就是以exe形式存在。而渲染,则是在浏览器中的WebGL进行。
GL的调用会由程序端发起,通过web socket发送给浏览器,让浏览器调用WebGL进行渲染。
而鼠标、触摸和键盘这类事件,则是通过浏览器接收,再发送给程序端处理。
另外这也意味着,用这个的方式在浏览器中访问QML程序,一次也只有一个实例化的对象。换句话说一个程序只能服务于一个浏览器的浏览,不支持多个浏览器同时访问。把一个普通的QML应用,直接以platform webgl方式启动。
具体步骤为:
首先用Qt编译(realse)Qt自带示例程序,进入编译输出的目录,以命令行方式运行; ./calqlatr
以platform webgl方式启动,此时背后已经启动了一个Web服务器,默认监听8080端口,随时准备为客户端提供服务 ./calqlatr platform webgl
找到编译好的二进制文件,使用以下参数在终端运行可修改其监听串口 ./calqlatr -platform webgl:port=12345
输入回车运行程序,然后在浏览器中直接访问就行了。
也就是说对于这个程序,无需对源码做任何修改,只需要在运行时指定platform为webgl即可支持在浏览器中使用。
跨操作系统的情况:
打开浏览器,根据IP和监听的端口,输入 http://192.168.43.158:8080 进行访问。
WebGL目前仍然是一个技术预览状态(目前是Qt5.10.0),肯定达不到产品级效果,稳定性、性能和各种细节也欠佳。
在我实验的几次中,就出现了崩溃的问题。有的浏览器也打不开,比如说Windows下的Edge,打开直接就是黑的,也没提示。
这些方面,只能说期待Qt在后面一步步完善,相信肯定可以越做越好的。
感叹,Qt这一次真的是走了一大步,填补了一片空白,可以说Qt做跨平台,终于跨到了浏览器这个平台上面。
没想到我这个学C++的人,竟然可以依靠QML去开发网页了。
QtWebGL:服务端运行应用程序,客户端(即浏览器)负责画面的渲染。使用WebGL的形式传输画面渲染命令。
如今新的WebGL的扩展意味着QML开发的程序可以直接在到浏览器中使用(WebGL底层也是OpenGL/ES,请注意区分)。但是,可以在浏览器中使用不意味着程序是跑在浏览器上的。 准确的说,程序逻辑任然运行在本地,在Windows上就是以exe形式存在。而渲染,则是在浏览器中的WebGL进行。
GL的调用会由程序端发起,通过web socket发送给浏览器,让浏览器调用WebGL进行渲染。
而鼠标、触摸和键盘这类事件,则是通过浏览器接收,再发送给程序端处理。
另外这也意味着,用这个的方式在浏览器中访问QML程序,一次也只有一个实例化的对象。换句话说一个程序只能服务于一个浏览器的浏览,不支持多个浏览器同时访问。把一个普通的QML应用,直接以platform webgl方式启动。
具体步骤为:
首先用Qt编译(realse)Qt自带示例程序,进入编译输出的目录,以命令行方式运行; ./calqlatr
以platform webgl方式启动,此时背后已经启动了一个Web服务器,默认监听8080端口,随时准备为客户端提供服务 ./calqlatr platform webgl
找到编译好的二进制文件,使用以下参数在终端运行可修改其监听串口 ./calqlatr -platform webgl:port=12345
输入回车运行程序,然后在浏览器中直接访问就行了。
也就是说对于这个程序,无需对源码做任何修改,只需要在运行时指定platform为webgl即可支持在浏览器中使用。
跨操作系统的情况:
打开浏览器,根据IP和监听的端口,输入 http://192.168.43.158:8080 进行访问。
WebGL目前仍然是一个技术预览状态(目前是Qt5.10.0),肯定达不到产品级效果,稳定性、性能和各种细节也欠佳。
在我实验的几次中,就出现了崩溃的问题。有的浏览器也打不开,比如说Windows下的Edge,打开直接就是黑的,也没提示。
这些方面,只能说期待Qt在后面一步步完善,相信肯定可以越做越好的。
感叹,Qt这一次真的是走了一大步,填补了一片空白,可以说Qt做跨平台,终于跨到了浏览器这个平台上面。
没想到我这个学C++的人,竟然可以依靠QML去开发网页了。
相关文章推荐
- Qt:终于来了!基于QML和WebGL开发网页端
- 基于ARM的网络视频监控开发+网页按钮控制摄像头方位
- 基于微软ASP.NET AJAX框架开发幻灯片播放网页
- 基于lua的网页脚本开发语言cgilua(转)
- 基于微软ASP.NET AJAX框架开发幻灯片播放网页
- 基于微软ASP.NET AJAX框架开发幻灯片播放网页
- 基于微软ASP.NET AJAX框架开发幻灯片播放网页
- 刷一个基于html5开发的网页圣诞游戏
- 一行代码让你基于IE6/7开发的网页能够在IE8中正常使用
- 基于微信api网页开发整理
- Unity3D的WebGL开发(二)与网页代码交互
- 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。
- 微信网页开发之获取用户unionID的两种方法--基于微信的多点登录用户识别
- 安卓项目开发之网页电话---基于webrtc的网络电话
- 基于微信JS_SDk开发微信网页及微信公共应用
- 基于bootstrap的网页开发
- 开发基于网页的ActiveX控制(二)
- erdaicms首款基于weui(微信网页开发样式库)的前端模版上线
- 基于网页内容数据采集 PHP开发学习笔记
- 基于nodejs实现本地网页服务器-实现手机测试电脑开发的移动端网页