我有 2 个应用程序,1 个有一个可以通过 DBus("菜单"应用程序)打开的 QMenu,另一个可以通过双击("单击"应用程序)打开该菜单。
当我通过在"单击"应用程序中双击打开菜单时,当我单击菜单外部时,菜单不会关闭。
菜单在以下情况下关闭:
- 通过航站楼的QDBus打开
- 通过单击"单击"应用程序中打开
- 按电调键
如果菜单属于同一应用程序,则它将关闭。
以下是 2 个应用程序
https://gitlab.com/fbg/qmenu-dbus-test
预期成果:
- 打开两个应用程序
- 双击"点击"应用
- "菜单"应用中的菜单打开
- 单击外部菜单
- 菜单关闭
实际结果:
1-4 同上
- 菜单
- 不会关闭,除非我单击"菜单"应用程序的窗口或按 Esc 键
编辑:
行为发生在 Solus 4.0 中
-
KDE 等离子版本:5.15.3
-
KDE 框架版本: 5.56.0
-
Qt版本:5.12.2
在 lubuntu (lxqt) 中,菜单显示一瞬间,然后关闭。
测试这一点的一个更简单的方法是使用 qdbusviewer。
- 构建并运行 testqmenudbus2
- 打开 qdbusviewer
- 查找服务组织。TestQMenu
- 在TestQMenu.local.MainWindow中找到方法showMenu
- 双击方法
通过添加解决了它
QThread::msleep(150);
在显示菜单之前到 dbus 方法。
可能只是一种解决方法。