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(使用前将#替换为@)