QT Designer : Menu Signal, Slot et barre d'icônes

Un signal émis par un Widget permet d'activer des méthodes.

Les menus ou les boutons sont les premiers objets d'un programme qui font appel à ces notions.

Nous partons d'un programme qui comporte une fenêtre principale (mainwindow) et un menu.

Menu

L'ajout d'une entrée de menu rajoute également une action visible dans la zone inférieure de QT Designer

Pour lier les menus aux méthodes voir ci-dessous ou  Signal-slot

Remarque : les entrées de menu peuvent aussi se créer manuellement

Signal et slot avec QT Designer

L'exécution du programme devrait permettre de mettre en évidence le fonctionnement


En réalité les manipulations précédentes ont simplement modifié le code de l'entête ui_mainwindow.h.

Une action a été créée :

actionQuitter = new QAction(MainWindow);

actionQuitter->setObjectName(QStringLiteral("actionQuitter"));

Cette action a été associée au menu :

menubar->addAction(menu_Fichier->menuAction());

menu_Fichier->addAction(actionQuitter);

Puis la connexion a été faite entre le signal et le slot en appelant la fonction QObject : connect

QObject::connect(menubar, SIGNAL(triggered(QAction*)), MainWindow, SLOT(close()));


Pour les notions liées au SIGNAL et au SLOT, voir le chapitre spécifique


Automatisation du slot avec QT Designer

Remarque importante sur les slot et QT Designer : lorsqu'on créé un slot soi même qui réagit au clic sur le bouton bouton, le fait d'appeler le slot on_bouton_clicked() connecte automatiquement le bouton au slot. Inutile d'utiliser connect.

Exemple :

Dans l'entête (.h) :

public slots:

   void on_boutonR_clicked(); //réaction au clic sur le boutonR présent dans QT Designer

Dans le fichier cpp :

void MainWindow::on_boutonR_clicked()

{

//réaction au Reset

   ui->label_Qbarre->setPixmap(QPixmap(":/images/ledoff.jpg"));//modifi d'une image dans la fenêtre de QT Designer

}

Barre d'outils


Remarque : un simple glisser déposé retire l'entrée du menu. Si l'on souhaite avoir l'entrée du menu et le bouton, le glisser déposer doit se faire avec la touche CTRL appuyée.


Remarque : Pour définir les images d'icones, il est préférable d'utiliser des ressources