我有一个QMenu
,我想在其中添加QActions
。问题是,每次单击该表时,现有的菜单都会自行添加。我该如何阻止它这样做
所以当我点击桌子时,每次都应该是新菜单。
void MainWindow::onTableClicked(const QModelIndex &index){
QAction *action;
// action->setAutoRepeat(false);
if (index.isValid()) {
QString cellText = index.data().toString();
QString indexRow = QString::number(index.row());
QString indexCol = QString::number(index.column());
ui->textBrowser->setText(indexRow + "n"+ indexCol);
QSet<int> possiblevalues = findPossibleValues(index.row(),index.column());
for(int n : possiblevalues){
listofPossibleValues.push_back(QString::number(n));
}
for(auto s :listofPossibleValues){
action = myMenu.addAction("Set Value "+s);
}
}
}
它看起来像myMenu.clear不起作用的原因是我在添加菜单操作后没有删除PossibleValues列表。我可以通过添加来修复它
//At the beginning
myMenu.clear();
//At the end
listofPossibleValues.clear();