2015-11-05 39 views
0
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中設置每個動作的信號?

有沒有人至少知道如何獲得我點擊的動作? 我怎樣才能使它爲每個單獨的項目,而不僅僅是最後一個工作?

回答

1

使用QMenutriggered signal

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

然後,在menuClicked()

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

感謝您的。但我不斷收到錯誤 - 沒有匹配函數調用'連接'我已經改變了頭文件和類文件中的參數。我該如何修復它?我的菜單中沒有觸發。我的菜單位於表格 – user2775042

+0

請向我展示您的連接語句和確切的錯誤消息。 – Mitch

+0

聲明 - 連接(myMenu,SIGNAL(觸發(QAction *)),這個,SLOT(menuClicked(QAction *))); 159:錯誤:沒有匹配的成員函數調用'connect' connect(myMenu,SIGNAL(triggered(QAction *)),this,SLOT(menuClicked(QAction *))); ^ ~~~~~~ – user2775042

相關問題