本文作者:MeGusta 转载自:社区论坛
方法如下:
1.从仓库下载deb包:
apt download libxcb-damage0 libxcb-composite0 libqt5xdg3 libqt5xdgiconloader3 dde-qt5integration dde-qt5xcb-plugin
2.解压deb之后,获取并组织好如下几个文件:

3.在启动程序时,添加环境变量,再启动程序(scdtool.bin),如
export QT_PLUGIN_PATH="$QT_PLUGIN_PATH:/opt/apps/${LINGLONG_APPID}/files/lib/x86_64-linux-gnu/qt5/plugins"
export QT_QPA_PLATFORM_PLUGIN_PATH="$QT_QPA_PLATFORM_PLUGIN_PATH:/opt/apps/${LINGLONG_APPID}/files/lib/x86_64-linux-gnu/qt5/plugins/platforms"
4.在其他的base/runtime环境中,如果没有生效,请用ldd来逐个调试上面动态库是不是缺失依赖。
5.在使用玲珑杀手构建qt5玲珑包时,建议在依赖列表deps.list中加入这几个包,以调用dde样式的文件浏览器、窗口装饰。
=======================================================
在deepin/玲珑环境中,有一个默认的环境变量 QT_QPA_PLATFORM=dxcb;xcb
,qt5程序默认会优先使用dde的dxcb样式。
在组件不全的情况下,dxcb就无法应用,就会报错,在系统中找不到dxcb样式插件。此时系统就会降级使用qt默认的xcb样式。
经过查询,依赖的libdxcb.so文件,是在 dde-qt5xcb-plugin
这个包里面。之前通过 ldd libdxcb.so | grep not这个命令补齐了依赖,但还是没有解决问题,因此猜测应该还是缺其他东西。
通过查看包含dtk的runtime: org.deepin.Runtime/23.0.1.4
的package.list。猜测一下,也许是缺dde开头的这个包:dde-qt5integration
。
继续通过ldd大法,补齐依赖,添加QT环境变量,再次打包运行之后,发现果然验证了之前的猜想。
效果对比如下,分别是qt5默认的xcb样式,和dde的dxcb样式:


发表回复