Qt QMenu简介

2023-05-16

1.常用方法

//添加带图标,文字的菜单项
QAction *addAction(const QIcon &icon, const QString &text)

//添加带快捷键,带菜单项接收槽
QAction *addAction(const QString &text, const QObject *receiver, const char *member, const QKeySequence &shortcut = 0)

//添加分隔符
QAction *addSeparator()


2.示例

一个qtcreator的菜单栏,这里就做了一个文件菜单栏,加上二级菜单。

源码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMenu>
#include <QKeySequence>
#include <QDebug>


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QMenu *menu = this->menuBar()->addMenu("文件(F)");

    //添加带快捷键,绑定槽函数
    QAction *actionNew = menu->addAction("新建文件或项目(N)...",this,slotNew, QKeySequence(tr("Ctrl+N")));
    QAction *actionOpen = menu->addAction("打开文件或项目(N)...",this,slotOpen, QKeySequence(tr("Ctrl+O")));
    QAction *actionOpenFile = menu->addAction("打开文件,用...(W)",this,slotOpenFile);
    QAction *latelyFile = menu->addAction("最近访问的文件(F)",this,slotLatelyFile);
    QAction *latelyProj = menu->addAction("最近使用的项目(R)",this,slotLatelyProj);
    QAction *sessions = menu->addAction("Sessions",this,slotSession);

    //添加二级菜单
    QMenu *sonMenu = new QMenu(this);
    sonMenu->addAction("1|E:\qtDemo\project");
    sonMenu->addAction("2|E:\qtDemo\project");
    sonMenu->addAction("3|E:\qtDemo\project");
    sonMenu->addAction("4|E:\qtDemo\project");
    latelyFile->setMenu(sonMenu);

    menu->addSeparator();
    menu->addAction("关闭所有项目和编辑器");
}

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

void MainWindow::slotNew()
{
    qDebug()<<"Ctrl+N";
}

void MainWindow::slotOpen()
{
    qDebug()<<"Ctrl+N";
}

void MainWindow::slotOpenFile()
{
    qDebug()<<"Open file";
}

void MainWindow::slotLatelyFile()
{
    qDebug()<<"slotLatelyFile";
}

void MainWindow::slotLatelyProj()
{
    qDebug()<<"slotLatelyProj";
}

void MainWindow::slotSession()
{
    qDebug()<<"slotSession";
}

3.运行效果

这里没有加图标,大体基本相似。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt QMenu简介 的相关文章

随机推荐