• 9892阅读
  • 4回复

怎么从QMenu中获取当前点击的QAction? [复制链接]

上一主题 下一主题
离线yangfanxing
 
只看楼主 倒序阅读 楼主  发表于: 2009-12-11
怎么从QMenu中获取当前点击的QAction?

是弹出式popup菜单。

QMenu::exec()的话好像弹出的菜单就不会自动消失了。或者是
QMenu::activeAction()?是这么用的么?
PHPWind好恶心。。。不想看这种界面。。。
离线snailbing

只看该作者 1楼 发表于: 2009-12-11
不太明白你的意思,不过普通情况下 QMenu::activeAction () 已经能满足要求了
但是如果不行的话,可以使用 QSignalMapper 这个类,把 action 本身做为信号的参数传给 slot
离线yangfanxing
只看该作者 2楼 发表于: 2009-12-11
引用第1楼snailbing于2009-12-11 14:51发表的  :
不太明白你的意思,不过普通情况下 QMenu::activeAction () 已经能满足要求了
但是如果不行的话,可以使用 QSignalMapper 这个类,把 action 本身做为信号的参数传给 slot


补充哈:
    aChosenAction = buttonPopupMenu->activeAction();
    if(aChosenAction == NULL)
    {
        qDebug() << "->NULL";
    }
    else
    {
        qDebug() << "->hello";
    }

aChosenAction 是新定义的,保存用的变量;
buttonPopupMenu是我一个弹出的按钮,已经添加了一个action(新建);当显示弹出式按钮单击“新建”后,输出“Null”,也就是说没有得到Action?其它的东西我都注释掉了,还是这个结果。。。怎么弄?
PHPWind好恶心。。。不想看这种界面。。。
离线daily8321

只看该作者 3楼 发表于: 2009-12-11
QAction *pChosenAction =  dynamic_cast<QAction*>(sender());
离线yangfanxing
只看该作者 4楼 发表于: 2009-12-12
引用第3楼daily8321于2009-12-11 20:06发表的  :
QAction *pChosenAction =  dynamic_cast<QAction*>(sender());

很好~谢谢~~~
PHPWind好恶心。。。不想看这种界面。。。
快速回复
限100 字节
 
上一个 下一个