在QT中制作动态QMenu

  • 本文关键字:动态 QMenu QT qt qmenu
  • 更新时间 :
  • 英文 :


我有一个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();

相关内容

  • 没有找到相关文章

最新更新