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);
}
我使用上面的代码添加动作并将信号连接到菜单的插槽。以前我使用该项目作为文本。但它只适用于最后一项。
有人至少知道如何获得我点击的动作吗? 如何让它适用于每个单独的项目,而不仅仅是最后一个?
答案 0 :(得分:2)
使用QMenu
的{{3}}:
connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(menuClicked(QAction*)));
然后,在menuClicked()
:
void MainWindow::menuClicked(QAction *action) {
// do something with action
}