首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

Qt中怎么获得触发的是哪个动作

2012-04-01 
Qt中如何获得触发的是哪个动作?QAction *morenzuAction new QAction(tr(默认组),menu1)menu1-addAct

Qt中如何获得触发的是哪个动作?
QAction *morenzuAction = new QAction(tr("默认组"),menu1);
menu1->addAction(morenzuAction);

connect(morenzuAction,SIGNAL(triggered()),this,SLOT(move_Action_triggered()));

菜单menu1中可能有多个action,想在槽函数中获得按下的是哪个action,谢谢~~


[解决办法]

C/C++ code
//声明void menu1ActionClick(QAction *action);// 链接connect(menu1,SIGNAL(triggered(QAction *)),this,SLOT(menu1ActionClick(QAction *)));// menu1ActionClick定义// morenzuAction声明为类的成员变量void Window::menu1ActionClick(QAction *action){    if (action == morenzuAction)    {        setWindowTitle("morenzuAction click");    }}
[解决办法]
另外一种方法:
在move_Action_triggered()函数中,通过sender()来判断是哪个action触发的
[解决办法]
C/C++ code
QAction* action = qobject_cast<QAction*>(sender()); 

热点排行