QT关于QMenu菜单栏

关于使用QT实现菜单栏功能的Demo
具体实现效果如下
在这里插入图片描述
代码如下:

#include "widget.h"
#include "ui_widget.h"
#include <QAction>
#include <QFileDialog>
#include <QMenuBar>
#include <QMainWindow>
#include <QDebug>
#include <QStyle>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    CreateMenu();
}

Widget::~Widget()
{
    delete ui;
}

void Widget::CreateMenu()
{
    QStyle *style = QApplication::style();

    QMenu *menu=new QMenu("菜单:常规1");
    QAction *action1=new QAction(QIcon(style->standardIcon(QStyle::SP_ArrowForward)),"action1");
    QAction *action2=new QAction(QIcon(style->standardIcon(QStyle::SP_ArrowForward)),"action2");
    QList<QAction*> list;
    list.append(action1);
    list.append(action2);
    menu->addActions(list);
    QMenuBar *menuBar=new QMenuBar;
    menuBar->addMenu(menu);
    menuBar->addSeparator();    //分隔栏

    connect(action1, &QAction ::triggered, this, [=] (){
            qDebug() << "action1";
        });
    connect(action2, &QAction ::triggered, this, [=] (){
            qDebug() << "action2";
        });


    QMenu *menu2=new QMenu("菜单:常规2");
    QAction *action3=new QAction(QIcon(style->standardIcon(QStyle::SP_ArrowForward)),"action3");
    QAction *action4=new QAction(QIcon(style->standardIcon(QStyle::SP_ArrowForward)),"action4");
    QList<QAction*> list2;
    list2.append(action3);
    list2.append(action4);
    menu2->addActions(list2);
    QMenuBar *menuBar2=new QMenuBar;
    menuBar->addMenu(menu2);
    menuBar->addSeparator();    //分隔栏

    connect(action3, &QAction ::triggered, this, [=] (){
            qDebug() << "action3";
        });
    connect(action4, &QAction ::triggered, this, [=] (){
            qDebug() << "action4";
        });
    ui->gridLayout->addWidget(menuBar);
}

每个action用了信号槽,都有debug输出,具体功能可以自己写。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值