Qt实现多级菜单及设置菜单的宽度

       Qt实现(多级)菜单 在Qt中通过QMenu和QAction就可以实现这些菜单,QMenu就是上图中我们看到的三个级联菜单,每个QMenu里面的小项目就是一个QAction,一个QAction由一个图标和一段文字描述组成。使用快捷键触发事件,需重写void keyPressEvent(QKeyEvent *event)方法。事例见下链接:https://blog.csdn.net/qq_16093323/article/details/83341880

下面实现多级菜单的构建:

    QMenu *menu = new QMenu();   
    menu->setMinimumWidth(150);//指定菜单的宽度为150 

    SystemMenu = new QMenu(this);
    SystemMenu->setTitle(tr("帮助"));
    QIcon icon(":/images/help1.png");
    SystemMenu->setIcon(icon);

    LogMgtMenu = new QMenu(this);
    LogMgtMenu->setTitle(tr("日志管理"));
    QIcon icon2(":/images/logMgn.png");
    LogMgtMenu->setIcon(icon2);

    SettingMenu = new QMenu(this);
    SettingMenu->setTitle(tr("设置"));
    QIcon icon4(":/images/setting.png");
    SettingMenu->setIcon(icon4);

    menu->addMenu(LogMgtMenu);
    menu->addMenu(SettingMenu);
    menu->addMenu(SystemMenu);

    HandBookAction = new QAction(this);
    HandBookAction->setText(tr("IPS 帮助"));
    HandBookAction->setShortcut(Qt::Key_F1);
    connect(HandBookAction,SIGNAL(triggered()),this,SIGNAL(HandBook()));
    QIcon icon(":/images/help1.png");
    HandBookAction->setIcon(icon);

    AboutAction = new QAction(this);
    AboutAction->setText(tr("关于"));
    connect(AboutAction,SIGNAL(triggered()),this,SIGNAL(ShowAbout()));
    QIcon icon1(":/images/about.png");
    AboutAction->setIcon(icon1);

    ExitAction = new QAction(this);
    ExitAction->setText(tr("退出"));
    ExitAction->setShortcut(Qt::CTRL|Qt::Key_Q);
    connect(ExitAction, SIGNAL(triggered()), this, SIGNAL(Exit()));
    QIcon icon2(":/images/exit.png");
    ExitAction->setIcon(icon2);

    SystemMenu->addAction(HandBookAction);
    SystemMenu->addAction(AboutAction);

    menu->addAction(ExitAction);

猜你喜欢

转载自blog.csdn.net/qq_16093323/article/details/83411264