//mainwindo.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMenu>
#include <QMenuBar>
#include <QStatusBar>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
QMenu* menu[10];//表示菜单栏最多有10个菜单项
QAction* act[10];//表示最多有10个控件
QMenuBar* menuBar ;//表示菜单栏
QStatusBar* status ;
public slots:
void trigerMenu(QAction* act);//表示公共信号量,表示信号
};
#endif // MAINWINDOW_H
//mainwindow.cpp
#include "mainwindow.h"
#include <Qt>
#include <QtDebug>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
this->resize(400,300);
this->centralWidget();
status = new QStatusBar(this);
menu[0] = new QMenu("文件");
menu[0]->addAction("编辑");
menu[0]->addAction("查看");
menu[0]->addAction("工具");
///第一个动作,新建
act[0] = new QAction("新建",this);
act[0]->setShortcut(QKeySequence::Save);//表示快捷键,使用QKeySequence::Save
act[0]->setStatusTip(tr("This is a new menu"));//表示状态栏
///
///第二个动作,打开
act[1] = new QAction("打开",this);
act[1]->setCheckable(true);
///
menu[1] = new QMenu("保存");
menu[1]->addAction(act[0]);
menu[1]->addAction(act[1]);
menu[2] = new QMenu("打印");
menu[2]->addAction("打印设置");
menu[2]->addMenu(menu[1]);
menuBar = new QMenuBar(this);
menuBar->addMenu(menu[0]);
menuBar->addMenu(menu[2]);
menuBar->setGeometry(0,0,this->width(),30);
connect(menuBar,SIGNAL(triggered(QAction*)),this,SLOT(trigerMenu(QAction*)));
statusBar();
}
MainWindow::~MainWindow()
{
}
void MainWindow::trigerMenu(QAction* act)
{
if(act->text() == "新建")
{
qDebug()<<"The Menu is below in the table";
}
}
//main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}