无法通过双击另一个应用程序关闭通过 dbus 打开的 QMenu

Can't close a QMenu opened through dbus by double clicking in another app

我有 2 个应用程序,1 个有一个可以通过 DBus 打开的 QMenu("menu" 应用程序),另一个可以通过双击打开该菜单("clicking" 应用程序)。

当我在 "clicking" 应用程序中双击打开菜单时,当我在菜单外单击时菜单不会关闭。

菜单关闭时间:

如果菜单属于同一个应用程序,则它会关闭。

这是 2 个应用程序

https://gitlab.com/fbg/qmenu-dbus-test

预期结果:

  1. 打开两个应用程序
  2. 双击"clicking"应用程序
  3. 来自 "menu" 应用程序的菜单打开
  4. 点击外部菜单
  5. 菜单关闭

实际结果:

1-4同上

  1. 菜单不会关闭,除非我点击 "menu" 应用程序的 window 或按 Esc 键

编辑:

行为发生在 Solus 4.0

在 lubuntu (lxqt) 中,菜单显示一瞬间然后关闭。

一个更简单的测试方法是使用 qdbusviewer。

  1. 构建和运行testqmenudbus2
  2. 打开 qdbusviewer
  3. 查找服务org.TestQMenu
  4. 在TestQMenu.local.MainWindow
  5. 中找到showMenu方法
  6. 双击法

Solved 添加

QThread::msleep(150);

在显示菜单之前到 dbus 方法。

虽然这可能只是一种解决方法。