Linux下Qt应用远程访问
VNC方式
首先需要指定应用platform 插件为vnc,并且指定服务启动端口(自定义)即可开启服务
./app -platform vnc:port=12345,depth=32,mmsize=600x350
使用vnc客户端链接即可看到应用窗口,效果如下图所示:
注意:
- 在应用启动时指定size经测试是无效的(也可能是操作问题),如果要设置大小可以直接在应用代码中设置窗口大小
- 与vnc远程说明控制相比,qtvncserver功能不完善,测试发现好像对于输入法支持有问题,无法切换输入法不支持中文,qt版本5.11和5.15都存在该问题不知道更高版本是否修复。
WebGL streaming方式
启动应用服务,默认启动服务端口是8080,可以通过:port=8090方式自定义端口
./app -platform webgl
在浏览器中输入ip加端口即可访问,本机的话http://127.0.0.1:8080 ,效果如下图所示:
要使用该功能需要保证插件已被安装,在5.x版本中为webgl在高版本中叫qtwebglplugin,默认是没有被打包集成的,如果需要可以自行下载编译安装,尽量使用相同版本的编译工具编译。Qt6.x版本会出现错误
unknown module(s) in qt: eventdispatcher_support-private fontdatabase_support-private theme_support-private
是因为相关模块已移入QtGui模块需要自行修改。本人使用Qt5.15版本编译测试正常。
注意:
- 从Qt 5.10开始作为技术预览被加入,但是到Qt 5.12才正式被发布,Qt6.x已废弃该模块,因此不建议作为生产力投入使用。
- 不支持中文输入
- 一个应用服务只能在有一个客户端访问及只能同时打开一个网页
- 只支持Qt Quick Application ,Qt widgets程序不支持,会出现错误WebGL QPA platform plugin: Raster surfaces are not supported
参考链接:
- https://doc.qt.io/qt-5/webgl.html
- https://forum.qt.io/topic/130312/error-trying-to-build-qtwebglplugin-in-qt-6-2-0/2
- https://www.qt.io/blog/2018/11/23/qt-quick-webgl-release-512