无法通过双击另一个应用程序关闭通过 dbus 打开的 QMenu
Can't close a QMenu opened through dbus by double clicking in another app
我有 2 个应用程序,1 个有一个可以通过 DBus 打开的 QMenu("menu" 应用程序),另一个可以通过双击打开该菜单("clicking" 应用程序)。
当我在 "clicking" 应用程序中双击打开菜单时,当我在菜单外单击时菜单不会关闭。
菜单关闭时间:
- 在终端中通过 qdbus 打开
- 通过在 "clicking" 应用中单击打开
- 正在按 Esc 键
如果菜单属于同一个应用程序,则它会关闭。
这是 2 个应用程序
https://gitlab.com/fbg/qmenu-dbus-test
预期结果:
- 打开两个应用程序
- 双击"clicking"应用程序
- 来自 "menu" 应用程序的菜单打开
- 点击外部菜单
- 菜单关闭
实际结果:
1-4同上
- 菜单不会关闭,除非我点击 "menu" 应用程序的 window 或按 Esc 键
编辑:
行为发生在 Solus 4.0
KDE 等离子版本:5.15.3
KDE 框架版本:5.56.0
Qt版本:5.12.2
在 lubuntu (lxqt) 中,菜单显示一瞬间然后关闭。
一个更简单的测试方法是使用 qdbusviewer。
- 构建和运行testqmenudbus2
- 打开 qdbusviewer
- 查找服务org.TestQMenu
- 在TestQMenu.local.MainWindow
中找到showMenu方法
- 双击法
Solved 添加
QThread::msleep(150);
在显示菜单之前到 dbus 方法。
虽然这可能只是一种解决方法。
我有 2 个应用程序,1 个有一个可以通过 DBus 打开的 QMenu("menu" 应用程序),另一个可以通过双击打开该菜单("clicking" 应用程序)。
当我在 "clicking" 应用程序中双击打开菜单时,当我在菜单外单击时菜单不会关闭。
菜单关闭时间:
- 在终端中通过 qdbus 打开
- 通过在 "clicking" 应用中单击打开
- 正在按 Esc 键
如果菜单属于同一个应用程序,则它会关闭。
这是 2 个应用程序
https://gitlab.com/fbg/qmenu-dbus-test
预期结果:
- 打开两个应用程序
- 双击"clicking"应用程序
- 来自 "menu" 应用程序的菜单打开
- 点击外部菜单
- 菜单关闭
实际结果:
1-4同上
- 菜单不会关闭,除非我点击 "menu" 应用程序的 window 或按 Esc 键
编辑:
行为发生在 Solus 4.0
KDE 等离子版本:5.15.3
KDE 框架版本:5.56.0
Qt版本:5.12.2
在 lubuntu (lxqt) 中,菜单显示一瞬间然后关闭。
一个更简单的测试方法是使用 qdbusviewer。
- 构建和运行testqmenudbus2
- 打开 qdbusviewer
- 查找服务org.TestQMenu
- 在TestQMenu.local.MainWindow 中找到showMenu方法
- 双击法
Solved 添加
QThread::msleep(150);
在显示菜单之前到 dbus 方法。
虽然这可能只是一种解决方法。