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

时间:2019-04-02 01:09:59

标签: qt dbus qmenu

我有2个应用程序,其中1个具有可以通过DBus(“菜单”应用程序)打开的QMenu,另一个可以通过双击(“单击”应用程序)打开该菜单。

当我通过双击“单击”应用程序打开菜单时,当我在菜单外部单击时,菜单不会关闭。

在以下情况下关闭菜单:

  • 通过终端中的qdbus打开
  • 在“点击”应用中单击即可打开
  • 按Esc键

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

这是2个应用程序

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

预期结果:

  1. 打开两个应用
  2. 双击“点击”应用
  3. “菜单”应用中的菜单打开
  4. 点击外部菜单
  5. 菜单关闭

实际结果:

1-4与上述相同

  1. 菜单不会关闭,除非我在“菜单”应用程序窗口中单击或按Esc键

编辑:

行为在Solus 4.0中发生

  • KDE Plasma版本:5.15.3

  • KDE Frameworks版本:5.56.0

  • Qt版本:5.12.2

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

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

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

1 个答案:

答案 0 :(得分:0)

Solved通过添加

QThread::msleep(150);
在显示菜单之前

使用dbus方法。

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