QMenu多级菜单

2023-06-21  本文已影响0人  雯饰太一

要在 QMenu 中设置二级菜单,可以使用 QMenuaddMenu 函数创建一个子菜单,并将其添加到主菜单中。以下是一个示例代码:

#include <QApplication>
#include <QMenu>
#include <QMenuBar>
#include <QAction>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    // 创建主窗口和菜单栏
    QMainWindow mainWindow;
    QMenuBar menuBar(&mainWindow);
    mainWindow.setMenuBar(&menuBar);

    // 创建主菜单
    QMenu mainMenu("主菜单");

    // 创建一级菜单项
    QAction action1("菜单项1");
    QAction action2("菜单项2");
    QAction action3("菜单项3");

    // 创建二级菜单
    QMenu subMenu("二级菜单");

    // 创建二级菜单项
    QAction subAction1("二级菜单项1");
    QAction subAction2("二级菜单项2");

    // 将二级菜单项添加到二级菜单中
    subMenu.addAction(&subAction1);
    subMenu.addAction(&subAction2);

    // 将二级菜单添加为一级菜单项的子菜单
    action1.setMenu(&subMenu);

    // 将一级菜单项添加到主菜单中
    mainMenu.addAction(&action1);
    mainMenu.addAction(&action2);
    mainMenu.addAction(&action3);

    // 将主菜单添加到菜单栏中
    menuBar.addMenu(&mainMenu);

    mainWindow.show();

    return app.exec();
}

在上述示例中,创建了一个主窗口和菜单栏。然后建了一个主菜单,并创建了一级菜单项 action1action2action3。接下来,我们创建了一个二级菜单 subMenu,并在其中添加了二级菜单项 subAction1subAction2。最后,我们将二级菜单 subMenu 设置为一级菜单项 action1 的子菜单,并将一级菜单项添加到主菜单中。

运行示例代码后,您将看到一个带有主菜单和二级菜单的窗口。当单击主菜单中的一级菜单项 菜单项1 时,将显示二级菜单,并可以选择二级菜单项。

直接使用lambda表达式形式创建action

menu.addAction(QStringLiteral("测试菜单"), this, [=]()
    {
        //直接写具体的操作              
    });
上一篇下一篇

猜你喜欢

热点阅读