#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
    Q_INIT_RESOURCE(statusbardemo);
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}
 
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QPlainTextEdit>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
private slots:
    void about();
    void newFile();
    void helloWorld();
private:
    Ui::MainWindow *ui;
    QPlainTextEdit *textEdit;
    void createStatusBar();
    void createActions();
};
#endif // MAINWINDOW_H
 
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow),
    textEdit(new QPlainTextEdit)
{
    ui->setupUi(this);
    /*
    menuBar QMenuBar
    menuHello QMenu
    actionWorld QAction
    --------------------------------
    mainToolBar QToolBar
    statusBar QStatusBar
    */
    ui->actionWorld->setStatusTip(tr("Hello world!"));
    connect(ui->actionWorld, &QAction::triggered, this, &MainWindow::helloWorld);
    ui->mainToolBar->addAction(ui->actionWorld);
    setCentralWidget(textEdit);
    //createStatusBar();
    createActions();
}
MainWindow::~MainWindow()
{
    delete ui;
}
//! [32]
void MainWindow::createStatusBar()
//! [32] //! [33]
{
    statusBar()->showMessage(tr("Ready"));
}
//! [33]
void MainWindow::createActions()
{
       QMenu *helpMenu = menuBar()->addMenu(tr("&Help"));
       QAction *aboutAct = helpMenu->addAction(tr("&About"), this, &MainWindow::about);
       aboutAct->setStatusTip(tr("Show the application's About box"));
   //! [22]
       QAction *aboutQtAct = helpMenu->addAction(tr("About &Qt"), qApp, &QApplication::aboutQt);
       aboutQtAct->setStatusTip(tr("Show the Qt library's About box"));
   //! [22]
   //!
       QMenu *fileMenu = menuBar()->addMenu(tr("&File"));
       QToolBar *fileToolBar = addToolBar(tr("File"));
       const QIcon newIcon = QIcon::fromTheme("document-new", QIcon(":/images/new.png"));
       QAction *newAct = new QAction(newIcon, tr("&New"), this);
       newAct->setShortcuts(QKeySequence::New);
       newAct->setStatusTip(tr("Create new file"));
       connect(newAct, &QAction::triggered, this, &MainWindow::newFile);
       fileMenu->addAction(newAct);
       fileToolBar->addAction(newAct);
}
//! [13]
void MainWindow::about()
//! [13] //! [14]
{
   QMessageBox::about(this, tr("About Application"),
            tr("The <b>Application</b> example demonstrates how to "
               "write modern GUI applications using Qt, with a menu bar, "
               "toolbars, and a status bar."));
}
//! [14]
//! [5]
void MainWindow::newFile()
//! [5] //! [6]
{
    QMessageBox::about(this, tr("New"),
             tr("Create a new file!"));
}
//! [6]
void MainWindow::helloWorld()
{
    QMessageBox::about(this, tr("Hello"),
             tr("Hello World!"));
}