这个厉害,困惑了我好久。

牛逼👍
我之前使用CLion开发Qt时也遇到过这个问题,由于是自己安装的Qt,所以直接在IDE端环境变量中删除掉dxcb这个变量。

这也是一直困扰我的问题,我用debian10开发环境,如果用apt的qt5-default编译,就会有dde样式,但如果用我自己编译的qt5,就没有。我问过很多人都不知道问题在哪
那么所以现在也还有一个问题请教,如果我想要集成dde的xcb样式,那么是需要在编译完成,集成的时候把文件集成好就行,还是说必须使用带有插件的qt才行?如果qt没这个插件,编译完也没法集成吗?
另外就是,这玩意有没有qt6版
这也是一直困扰我的问题,我用debian10开发环境,如果用apt的qt5-default编译,就会有dde样式,但如果用我自己编译的qt5,就没有。我问过很多人都不知道问题在哪
那么所以现在也还有一个问题请教,如果我想要集成dde的xcb样式,那么是需要在编译完成,集成的时候把文件集成好就行,还是说必须使用带有插件的qt才行?如果qt没这个插件,编译完也没法集成吗?
另外就是,这玩意有没有qt6版
我在编译过程中没有管这个问题,依赖的是仓库里面qt5-default,是在运行的时候才注意到。
我没有编译过qt5,所以自定义qt5环境的情况我不清楚。
我在pkgs.org里面搜索了一下,在ubuntu 22和debian 11开始,他们仓库里面也有这几个组件了。个人觉得,这几个组件是不是与程序本身无关,而是采用 QT_QPA_PLATFORM=dxcb;xcb
这个环境变量时,启用dxcb窗口样式的一个必要条件。
qt6环境里面也有,不然deepin25也没有办法应用dxcb样式,涉及的qt6包名如下:
dde-qt6xcb-plugin
dde-qt6integration
libqt6xdg4
libqt6xdgiconloader4
旧版本runtime的问题,在 org.deepin.runtime.dtk 23 修了这个问题
旧版本runtime的问题,在 org.deepin.runtime.dtk 23 修了这个问题
玲珑文档里面介绍了,但是仓库里面好像没有搜索到这个runtime:
org.deepin.runtime.dtk/23
base: org.deepin.base/23.1.0
runtime: org.deepin.runtime.dtk/23.1.0
试试这个
base: org.deepin.base/23.1.0
runtime: org.deepin.runtime.dtk/23.1.0
试试这个
ll-cli search搜索不到,但是在yaml里面可以拉取了。谢谢!
Popular Ranking
ChangePopular Events
More
方法如下:
1.从仓库下载deb包:
apt download libxcb-damage0 libxcb-composite0 libqt5xdg3 libqt5xdgiconloader3 dde-qt5integration dde-qt5xcb-plugin
2.解压deb之后,获取并组织好如下几个文件:
3.在启动程序时,添加环境变量,再启动程序(scdtool.bin),如
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样式:
另外,希望官方多写点文档。目前的情况是,出现问题之后,如同盲人摸象,只能连猜带蒙,比较耗费时间。