Ajouter un Widget manuellement au programme

A l'exécution, lorsque la nouvelle application est créée, elle se referme aussitôt.

Bouton

Pour rajouter manuellement des Widgets, il suffit d'inclure la bibliothèque :

#include <QWidgets>

De créer l'instance de la classe du Widget, puis de l'afficher :

#include <QApplication>

#include  <QtWidgets>

int main(int argc, char *argv[])

{

    QApplication app(argc, argv);

    QPushButton bouton("Bonjour");

    bouton.show();

    return app.exec();

}

Mais le bouton créé occupera toute la fenêtre. Car c'est le bouton qui est la fenêtre.

Il faut donc créer une fenêtre parent et y placer le bouton.

QWidget fenetre; //on cree l'instance

fenetre.setFixedSize(300, 150); //on fixe sa dimension

QPushButton bouton("Bonjour", &fenetre); //Le bouton est integré à la fenêtre

Puis changer les propriétés du bouton

bouton.setGeometry(20, 20, 50, 80); //position dans la fenêtreet dimensions du bouton

Et afficher dans le bon ordre

bouton.show(); //Afficher le bouton

fenetre.show(); //afficher la fenêtre

Menu

Remarque : Le menu d'un programme peut être créé facilement avec QT Designer, mais dans certains cas, il est nécessaire de créer dynamiquement des items de menu (dernier fichier ouvert par exemple). Dans ce cas on devra passer par le codage du menu.

Le main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])

{

  // create main event loop handler and parse command line arguments

  QApplication app(argc, argv);

  // create application main window & enter main event loop

  MainWindow window;

  window.show();

  return app.exec();

}

  Le header de la fenêtre :

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include <QMainWindow>

/*************************************************************************************/

/*********************** Main application window for QSimulate ***********************/

/*************************************************************************************/

class MainWindow : public QMainWindow

{

public:

  MainWindow();                       // constructor

};

#endif  // MAINWINDOW_H

Le code de la fenêtre mainwindow.cpp (on spécifie les items du menu) :

#include "mainwindow.h"

#include <QMenuBar>


/************************************ constuctor *************************************/


MainWindow::MainWindow() : QMainWindow()

{

  // add drop down menus (currently empty)

  menuBar()->addMenu("&File");

  menuBar()->addMenu("&Edit");

  menuBar()->addMenu("&View");

  menuBar()->addMenu("&Simulate");

  menuBar()->addMenu("&Help");

}