本文作者:MeGusta 转载自:社区论坛


方法如下:

1.从仓库下载deb包:

apt download libxcb-damage0 libxcb-composite0 libqt5xdg3 libqt5xdgiconloader3 dde-qt5integration dde-qt5xcb-plugin

2.解压deb之后,获取并组织好如下几个文件:

截图_选择区域_20250728005514.jpg

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样式:

image.png
截图_选择区域_20250728010352.jpg

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注