大家好,
我有一些代码根据某些数据生成动态填充的 QMenu(我将其称为 thisMenu)。创建 QMenu thisMenu,将一些“主”QWidget 作为父级,并添加到此 QWidget 内的 QMenuBar (menuBar.addMenu(&thisMenu)。稍后,我希望用户能够从上下文菜单访问 thisMenu(用户右键单击 QWidget 的某些部分,它会弹出一个带有一些操作的 QMenu(称为 contextMenu),以及之前的 QMenu 作为子菜单)。
如果我重用我首先使用 contextMenu.addMenu(&thisMenu) 创建的 QMenu,我会发现,即使 contextMenu 在正确的全局位置弹出,thisMenu 也总是被翻译到其他位置并且有时出现在上面,有时出现在 contextMenu 下。
我可以测试这是否与父链相关联:thisMenu 不是 contextMenu 的子项,如果我将它创建为 contextMenu 的子项,一切都很好。有没有一种方法可以干净地处理这种情况,而无需重新创建类似于 thisMenu 的 QMenu,或更改 thisMenu 的父级;即在QMenuBar 和一些上下文菜单/QMenu 中重用thisMenu?在其他方面,处理 QMenu 的育儿链和共享 QMenu 的正确方法是什么?
谢谢,