【标题描述】通过软件商店安装的亿图图示软件无法在UKUI on Wayland中运行
【环境信息】
硬件信息:VMWare Workstation Pro 17
系统信息:openKylin 0.9
软件信息:亿图图示 edrawmax 11.5.6
桌面信息: UKUI on Wayland
【问题复现步骤】
【预期结果】
程序可以正常运行
【实际结果】
程序异常退出
【附件信息】
【错误日志】
/opt/EdrawMax-11$ ./edrawmax.sh
QFont::setPointSizeF: Point size <= 0 (-0.000001), must be greater than 0
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
QFont::setPointSizeF: Point size <= 0 (-0.000001), must be greater than 0
QWidget::setMinimumSize: (/QFrame) Negative sizes (2,-2147483648) are not possible
QWidget::setMinimumSize: (/StyleButton) Negative sizes (0,-2147483648) are not possible
QWidget::setMaximumSize: (/StyleButton) Negative sizes (16777215,-2147483648) are not possible
QWidget::setMinimumSize: (/StyleButton) Negative sizes (0,-2147483648) are not possible
QWidget::setMaximumSize: (/StyleButton) Negative sizes (16777215,-2147483648) are not possible
QWidget::setMinimumSize: (/QLabel) Negative sizes (-2147483648,-2147483648) are not possible
QWidget::setMinimumSize: (/QLabel) Negative sizes (-2147483648,0) are not possible
QWidget::setMaximumSize: (/QLabel) Negative sizes (-2147483648,16777215) are not possible
QWidget::setMinimumSize: (/StyleButton) Negative sizes (0,-2147483648) are not possible
QWidget::setMaximumSize: (/StyleButton) Negative sizes (16777215,-2147483648) are not possible
QWidget::setMinimumSize: (/StyleButton) Negative sizes (0,-2147483648) are not possible
QWidget::setMaximumSize: (/StyleButton) Negative sizes (16777215,-2147483648) are not possible
QWidget::setMinimumSize: (/StyleButton) Negative sizes (-2147483648,0) are not possible
QWidget::setMaximumSize: (/StyleButton) Negative sizes (-2147483648,0) are not possible
QWidget::setMinimumSize: (/StyleButton) Negative sizes (-2147483648,0) are not possible
QWidget::setMaximumSize: (/StyleButton) Negative sizes (-2147483648,0) are not possible
QWidget::setMinimumSize: (/StyleButton) Negative sizes (-2147483648,0) are not possible
QWidget::setMaximumSize: (/StyleButton) Negative sizes (-2147483648,0) are not possible
QWidget::setMinimumSize: (/StyleButton) Negative sizes (-2147483648,0) are not possible
QWidget::setMaximumSize: (/StyleButton) Negative sizes (-2147483648,0) are not possible
QWidget::setMinimumSize: (/StyleButton) Negative sizes (0,-2147483648) are not possible
QWidget::setMaximumSize: (/StyleButton) Negative sizes (16777215,-2147483648) are not possible
QWidget::setMinimumSize: (/StyleButton) Negative sizes (-2147483648,0) are not possible
QWidget::setMaximumSize: (/StyleButton) Negative sizes (-2147483648,0) are not possible
QWidget::setMinimumSize: (/QFrame) Negative sizes (2,-2147483648) are not possible
QWidget::setMinimumSize: (/QFrame) Negative sizes (1,-2147483648) are not possible
QWidget::setMinimumSize: (/QWidget) Negative sizes (-2147483648,0) are not possible
QWidget::setMaximumSize: (/QWidget) Negative sizes (-2147483648,16777215) are not possible
QWidget::setMinimumSize: (/ColorDialog) Negative sizes (-2147483648,-2147483648) are not possible
QWidget::setMinimumSize: (/QPushButton) Negative sizes (0,-2147483648) are not possible
QWidget::setMaximumSize: (/QPushButton) Negative sizes (16777215,-2147483648) are not possible
QWidget::setMinimumSize: (/QPushButton) Negative sizes (0,-2147483648) are not possible
QWidget::setMaximumSize: (/QPushButton) Negative sizes (16777215,-2147483648) are not possible
QWidget::setMinimumSize: (/QPushButton) Negative sizes (-2147483648,-2147483648) are not possible
QWidget::setMaximumSize: (/QPushButton) Negative sizes (-2147483648,-2147483648) are not possible
QWidget::setMinimumSize: (/QPushButton) Negative sizes (-2147483648,-2147483648) are not possible
QWidget::setMaximumSize: (/QPushButton) Negative sizes (-2147483648,-2147483648) are not possible
QPixmap::scaled: Pixmap is a null pixmap
QCursor: Cannot create bitmap cursor; invalid bitmap(s)
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
./edrawmax.sh:行 2: 2864 段错误 (核心已转储) /opt/EdrawMax-11/EdrawMax "$@"
【程序堆栈】
Core was generated by `/opt/EdrawMax-11/EdrawMax'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f4d2d8eafbb in Qtitan::RibbonGalleryItem::setToolTip(QString const&) () from /opt/EdrawMax-11/lib/libqtitanribbon.so.1
[Current thread is 1 (Thread 0x7f4d24736280 (LWP 2864))]
(gdb) bt
#0 0x00007f4d2d8eafbb in Qtitan::RibbonGalleryItem::setToolTip(QString const&) () from /opt/EdrawMax-11/lib/libqtitanribbon.so.1
#1 0x0000000000808289 in MainWindow::updateTextAlignGalleryGroup(unsigned int) ()
#2 0x0000000000748ec2 in MainWindow::createHomeGalleryItems() ()
#3 0x00000000007545d2 in MainWindow::MainWindow(QWidget*) ()
#4 0x00000000004afa9b in main ()
看一下是不是虚拟机内存 cpu资源分配不够?提高一下内存和cpu资源再试试
将内存从4GB升到8GB,CPU从2核升到4核问题依旧。此外,在同样配置4GB内存,2核CPU的Ubuntu上是可以正常运行的。所以基本可以排除内存和CPU。
进一步调试发现,EdrawMax基于QT开发,软件包自带的QT插件似乎并不支持Wayland。当我强制将QT_QPA_PLATFORM设为wayland时,果然程序会明确的报错。
/opt/EdrawMax-11$ QT_QPA_PLATFORM=wayland ./edrawmax.sh
This application failed to start because it could not find or load the Qt platform plugin "wayland"
in "".
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, webgl, xcb.
在Utuntu 22.04中,如果我也强制将QT_QPA_PLATFORM设为wayland,程序同样无法启动。这似乎印证了EdrawMax本身并不支持Wayland。
于是,我重新以UKUI登陆openKylin。在UKUI桌面下,XDG_SESSION_TYPE变成了x11。EdrawMax果然可以成功运行。
可是在Utuntu下XDG_SESSION_TYPE同样是wayland,为什么这款软件默认就能正常运行呢?进一步搜索发现了https://bugreports.qt.io/browse/QTBUG-68619。QT Wayland在Gnome上跑有很多bug。所以从QT 5.11.0开始,如果检测出桌面是Gnome,它会直接忽略XDG_SESSION_TYPE=wayland。这似乎可以解释为什么Edrawmax在Unbuntu Gnome桌面下默认是可以运行的。
if (currentDesktop.contains("gnome") || sessionDesktop.contains("gnome")) {
qInfo() << "Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome."
<< "Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.";
在UKUI on Wayland桌面下,XDG_SESSION_DESKTOP="ukui-wayland",并不是Gnome,所以QT默认还是会选择Wayland。
最后总结就是,Edrawmax 11并不支持Wayland。QT Wayland和Gnome之间存在一些bug,更不用说对UKUI on Wayland的支持了。所以在运行openKylin时,选择UKUI桌面的兼容性会更好一些。亿图图示是可以在UKUI桌面中正常运行的。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
后续推进应用适配,当前在x环境下使用
登录 后才可以发表评论