Qt右键创建菜单(包含二级菜单)

群里又有人问这种简单问题,还是写出来记录,以后就扔链接了。

准备工作:

熟悉QMenu QAction QList

创建菜单的过程

1. 重写
virtual void 
contextMenuEvent(QContextMenuEvent *event)函数

void Widget::contextMenuEvent(QContextMenuEvent *){
    // 主菜单
    QMenu *MainMenu = new QMenu(this);
    //主菜单的 子项
    QAction *option = new QAction(MainMenu);
    option->setText("选项");
    QAction *about = new QAction(MainMenu);
    about->setText("关于");
    QList<QAction*> actionList;
    actionList<<option\
             <<about;
    //添加子项到主菜单
    MainMenu->addActions(actionList);

    //子菜单
    QMenu *childMenu = new QMenu();
    //子菜单的 子项
    QAction *delfile = new QAction(childMenu);
    delfile->setText("删除");
    QAction *addfile = new QAction(childMenu);
    addfile->setText("添加");
    QList<QAction *> childActionList;
    childActionList<<delfile\
                  <<addfile;
    childMenu->addActions(childActionList);
    //设置子菜单 归属opion
    option->setMenu(childMenu);
    //主菜单添加子菜单
    MainMenu->addMenu(childMenu);
    // 移动到当前鼠标所在未知
    MainMenu->exec(QCursor::pos());
}

 效果图如下:

 至于每个按钮的事件,自己写信号槽即可!

  • 10
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值