如何知道一个给定QAction的父菜单

How to know parent menu of a given QAction?

本文关键字:QAction 菜单 一个 何知道      更新时间:2023-10-16

我有一个QActions列表,一些添加到顶级菜单,少数添加到顶级子菜单。

是否有办法知道每个动作的父菜单名称?

QAction *act;

我正在尝试act->parentWidget()。但我怎么能从中得到菜单名呢?

您可以检查act->parentWidget()的结果是否为有效指针,如果是,则可以作为普通小部件操作。

要获得菜单名,这取决于您正在使用的小部件。

如果是QMenu,可以通过title函数检索菜单标题。

QAction *act;
...
QWidget *widget = act->parentWidget();
if (widget) {
    QMenu *menu = dynamic_cast<QMenu*>(widget);
    menu->title();
}