• 8148阅读
  • 6回复

[提问]关于动态更新Qt系统菜单的问题 [复制链接]

上一主题 下一主题
离线milawoai
 

只看楼主 倒序阅读 楼主  发表于: 2014-07-20
  各位大侠,现在我想写一个程序,可以动态更新Qt的菜单。




如图,单击“Add”按钮后,会在“标签“菜单栏中产生一个新的按钮:




然而,如果我想再添加一个按钮B,就会出错,究其原因,是我在自定义的SLOT函数中,有这样一段代码:
QList<QAction*> actionList = ROOTMenu->actions();    ROOTMenu->clear();    bool flag = true;    foreach (actiontemp, actionList) {        QString strTemp = actiontemp->text();}在每次重新读取该Meau的ACTIONS时,每次新添加的Action(上例中的Action——A)未被读取,请问这是为什么?
离线milawoai

只看该作者 1楼 发表于: 2014-07-20
添加按钮的代码如下:
  if(str.size()==1)
        {
             actionCreate = ROOTMenu->addAction(*(constIterator));
        }
离线milawoai

只看该作者 2楼 发表于: 2014-07-20
人工顶置
离线彩阳

只看该作者 3楼 发表于: 2014-07-20
看看报什么错。
上海Qt开发联盟,热忱地欢迎你的加入!
离线milawoai

只看该作者 4楼 发表于: 2014-07-21
回 彩阳 的帖子
彩阳:
看看报什么错。

是这样的,当加入新按钮后,再次使用
QList<QAction*> actionList = ROOTMenu->actions();
后,进行遍历
foreach(actiontemp, actionList)
{
    QString strTemp = actiontemp->text();
    qDebug()<< strTemp ;
}
发现只能显示 Add 与 python ,新的“a”标签不会显示且
报如下错误:
离线milawoai

只看该作者 5楼 发表于: 2014-07-21
Exception at 0x6673cla8,code:0xc0000005:read access violation at:0x0 flags = 0x0(first chance)
离线milawoai

只看该作者 6楼 发表于: 2014-07-21
人工顶置
快速回复
限100 字节
 
上一个 下一个