首选熊QMainWindow中派生一个子类QMain,然后创建相应的QAction,然后调用addToolBar("Edit");创建菜单栏,将QAction添加进工具栏。
#ifndef QMAIN_H
#define QMAIN_H
#include <QMainWindow>
#include <QAction>
#include <QToolBar>
class QMain : public QMainWindow
{
Q_OBJECT
public:
explicit QMain(QWidget *parent = 0);
protected:
void createAction();
void createMenu();
void createToolBar();
signals:
public slots:
private:
QAction* exitAction;
QAction* openAction;
QAction* addNoteAction;
QAction* cutAction;
QAction* copyAction;
QAction* pasteAction;
QMenu* fileMenu;
QMenu* editMenu;
QToolBar* editToolBar;
};
#endif // QMAIN_H
#include "qmain.h"#include <QMenuBar>#include <QIcon>#include <QApplication>QMain::QMain(QWidget *parent) : QMainWindow(parent){createAction();
createMenu();
createToolBar();
resize(500,600);}void QMain::createAction(){exitAction = new QAction(tr("E&xit"),this);exitAction->setIcon(QIcon(":/images/delete.png"));exitAction->setShortcut(tr("Ctrl+Q"));connect(exitAction,SIGNAL(triggered(bool)),this,SLOT(close()));openAction = new QAction("&Open",this);openAction->setShortcut(QKeySequence::Open);openAction->setStatusTip(tr("open"));addNoteAction = new QAction(tr("node"),this);addNoteAction->setIcon(QIcon(tr(":/images/node.png")));addNoteAction->setStatusTip(tr("add node"));cutAction = new QAction(tr("&Cut"),this);cutAction->setIcon(QIcon(tr(":/images/cut.png")));cutAction->setShortcut(QKeySequence::Cut);cutAction->setStatusTip(tr("cut Text"));copyAction = new QAction(tr("&Copy"),this);copyAction->setIcon(QIcon(tr(":/images/copy.png")));copyAction->setShortcut(QKeySequence::Copy);pasteAction = new QAction(tr("&Paste"),this);pasteAction->setIcon(QIcon(":/images/paste.png"));pasteAction->setShortcut(QKeySequence::Paste);pasteAction->setStatusTip(tr("paste text"));}void QMain::createMenu(){fileMenu = menuBar()->addMenu("&File");fileMenu->addAction(exitAction);editMenu = menuBar()->addMenu("&Edit");editMenu->addAction(addNoteAction);editMenu->addAction(cutAction);editMenu->addAction(pasteAction);editMenu->addAction(openAction);}void QMain::createToolBar(){editToolBar = addToolBar("Edit");editToolBar->addAction(openAction);editToolBar->addAction(copyAction);editToolBar->addAction(pasteAction);editToolBar->addAction(cutAction);}
#include <QApplication>
#include <qmain.h>
int main(int argc,char* argv[])
{
QApplication app(argc,argv);
QMain* ma = new QMain;
ma->show();
return app.exec();
}