• 7650阅读
  • 6回复

大家好,QtMenu的一个小问题,求教 [复制链接]

上一主题 下一主题
离线milawoai
 

只看楼主 倒序阅读 楼主  发表于: 2014-07-14


   我添加了一个Qmenu:标签,并为其添加了两个子项,现在,我想遍历Qmenu:Label,将作为Action的文本“添加标签”保存到一个QList中,
而子菜单Kola的文本“KOLA”则添加到另外一个中;但是这样应该如何分辨其为Qmenu还是QAction呢?我试用了

QList<QAction*> actionList = ui->menu_L->actions();
foreach (actiontemp, actionList) {        qDebug()<<actiontemp->text();    }结果两者都输出来了、、
离线milawoai

只看该作者 1楼 发表于: 2014-07-14
人工顶。。
离线toby520

只看该作者 2楼 发表于: 2014-07-14
你这样的ui->menu_L->ations当然返回它所有的action了, 想要区分 可以设置每个label的对象名称也可以
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线dbzhang800

只看该作者 3楼 发表于: 2014-07-14
QMenu * QAction::menu() const
离线milawoai

只看该作者 4楼 发表于: 2014-07-14
回 toby520 的帖子
toby520:你这样的ui->menu_L->ations当然返回它所有的action了, 想要区分 可以设置每个label的对象名称也可以 (2014-07-14 15:02) 

你好,是这样的,我想做的,是有子Menu的Menu,是由用户添加按钮的,这些按钮可能是Action,也可能是子Menu,要怎样将Menu中的子Menu遍历呢?谢谢
离线milawoai

只看该作者 5楼 发表于: 2014-07-14
回 dbzhang800 的帖子
dbzhang800:QMenu * QAction::menu() const (2014-07-14 15:45) 

谢谢你,这样只能一个一个判断吗?没有如同QWidget::actions()这样的遍历算法吗?
离线milawoai

只看该作者 6楼 发表于: 2014-07-15
没办法了,使用QAction*->menu()!=NULL来判定的。。 QList<QAction*> actionList = ui->menu_L->actions();
    QList<QString> stringList;
    QAction * actiontemp = NULL;

    foreach (actiontemp, actionList) {
        QString strTemp = actiontemp->text();
        if(strTemp == "Add")
        {
            ;
        }
        else if(actiontemp->menu()!=NULL)
        {
            ChangReadRecio(stringList,actiontemp->menu(),strTemp);
        }
        else
        {
            stringList.push_back(strTemp);
        }
    }
快速回复
限100 字节
 
上一个 下一个