54 Star 124 Fork 347

openKylin / community

 / 详情

通过软件商店安装的亿图图示软件无法在UKUI on Wayland中运行

已确认
缺陷
创建于  
2022-12-14 11:32

【标题描述】通过软件商店安装的亿图图示软件无法在UKUI on Wayland中运行
【环境信息】
硬件信息:VMWare Workstation Pro 17
系统信息:openKylin 0.9
软件信息:亿图图示 edrawmax 11.5.6
桌面信息: UKUI on Wayland

【问题复现步骤】

  1. 启动开放麒麟操作系统
  2. 登录界面选择UKUI on Wayland
  3. 在软件商店中安装亿图图示
  4. 在开始菜单中点击运行亿图图示

【预期结果】
程序可以正常运行

【实际结果】
程序异常退出

【附件信息】
Image description

【错误日志】

/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 ()

评论 (3)

已注销用户 创建了缺陷

看一下是不是虚拟机内存 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桌面中正常运行的。

已注销用户 修改了描述
已注销用户 修改了标题
已注销用户 修改了描述
已注销用户 修改了描述
fanwei 任务状态待确认 修改为已确认
fanwei 优先级设置为次要
fanwei 添加了
 
bug
标签
fanwei 负责人设置为handsome_feng

后续推进应用适配,当前在x环境下使用

handsome_feng 移除了
 
bug
标签

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(3)
5311477 kiber 1662778190 Avatar default
1
https://gitee.com/openkylin/community.git
git@gitee.com:openkylin/community.git
openkylin
community
community

搜索帮助