1
    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);
}

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

有谁至少知道如何获得我点击的动作?我怎样才能使它适用于每个单独的项目,而不仅仅是最后一个?

4

1 回答 1

2

使用 的触发信号QMenu

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

然后,在menuClicked()

void MainWindow::menuClicked(QAction *action) {
    // do something with action
}
于 2015-11-05T07:31:01.800 回答