如何为 QMenu 中的每个动作设置信号?
How to set signals for each action in QMenu?
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);
}
我使用上面的代码添加动作并将信号连接到我的菜单槽。以前我使用项目作为文本。但它只适用于最后一项。
至少有人知道如何获取我点击的操作吗?
我怎样才能让它适用于每个单独的项目,而不仅仅是最后一个项目?
使用QMenu
的triggered signal:
connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(menuClicked(QAction*)));
然后,在menuClicked()
中:
void MainWindow::menuClicked(QAction *action) {
// do something with action
}
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);
}
我使用上面的代码添加动作并将信号连接到我的菜单槽。以前我使用项目作为文本。但它只适用于最后一项。
至少有人知道如何获取我点击的操作吗? 我怎样才能让它适用于每个单独的项目,而不仅仅是最后一个项目?
使用QMenu
的triggered signal:
connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(menuClicked(QAction*)));
然后,在menuClicked()
中:
void MainWindow::menuClicked(QAction *action) {
// do something with action
}