如何为QMenu中的每个动作设置信号?

时间:2015-11-05 06:36:51

标签: qt qmenu qaction

    for(auto s :listofPossibleValues){
        // item =s;

        action = myMenu.addAction("Set Value to "+s);

        connect(action,SIGNAL(triggered(bool)),this,SLOT(menuClicked()));
    }
  void MainWindow::menuClicked(){
    value = new QStandardItem(item);
    model->setItem(mainindex->row(),mainindex->column(),value);
}

我使用上面的代码添加动作并将信号连接到菜单的插槽。以前我使用该项目作为文本。但它只适用于最后一项。

有人至少知道如何获得我点击的动作吗? 如何让它适用于每个单独的项目,而不仅仅是最后一个?

1 个答案:

答案 0 :(得分:2)

使用QMenu的{​​{3}}:

connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(menuClicked(QAction*)));

然后,在menuClicked()

void MainWindow::menuClicked(QAction *action) {
    // do something with action
}