« Programmation Qt/Signaux et slots » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Nouvelle page : les signaux / slot sont des concepte pour envoyer une instruction.: * un signal est une valeur envoyer par un objet <em>exemple :j'ai appuyer sur le bouton</em> * un slot est une a...
 
Aucun résumé des modifications
Ligne 82 : Ligne 82 :
Quant à "A propos", il provoque l'ouverture de la fenêtre "A propos de Qt".
Quant à "A propos", il provoque l'ouverture de la fenêtre "A propos de Qt".
==parametre dans le signaux et les slot==
==parametre dans le signaux et les slot==
La méthode statique connect() est assez originale, vous l'avez vu. Il s'agit justement d'une des particularités de Qt que l'on ne retrouve pas dans les autres bibliothèques.
partie en cours de redaction

<poem>maintenant comment faire une slider bar qui quand la valeur change fait changer la valeur d'un afficher LCD?

heu

heu
{{en travaux}}

Version du 4 août 2008 à 14:50

les signaux / slot sont des concepte pour envoyer une instruction.:


  • un signal est une valeur envoyer par un objet exemple :j'ai appuyer sur le bouton
  • un slot est une action qui s'actionne quand la valeur de l'objet qui envois le signal arrive sur l'objet .note l'objet peut aussi prendre la valeur du signal. exemple:quitter le programe


Explication

Qt rajoute les signaux et les slot

par exemple objet 1 envoi signal 1* vers1 slot 2, objet 2 recoit signal 1 et fait slot 2.on connect signal 1* a slot1 2. et objet 2 fait l'action slot 2.

Utilisation

maintenant voici l'exemple:

bouton a le signal cliked() et aplication a le slot quit()

on connect clicked() a quit() et quand l'utilisateur clique sur le bouton l'application se ferme.

voici connect!

connect() est une méthode statique. pour appeler une methode statique:

QObject::connect();

La méthode connect prend 4 arguments :

  • Un pointeur vers l'objet qui émet le signal
  • Le nom du signal que l'on souhaite envoyer.
  • Un pointeur vers l'objet qui contient le slot récepteur.
  • Le nom du slot qui doit s'exécuter lorsque le signal se produit.

exercice , quiter quand on apuis sur le bouton

feson un code (mafenetre.cpp) voir personaliser ses widget

#include "MaFenetre.h" //voir personaliser ses widget
 
MaFenetre::MaFenetre() : QWidget()
{
    setFixedSize(300, 150);
 
    m_bouton = new QPushButton("Quitter", this);
    m_bouton->setFont(QFont("Comic Sans MS", 14));
    m_bouton->move(110, 50);
 
    // Connexion du clic du bouton à la fermeture de l'application
    QObject::connect(m_bouton, SIGNAL(clicked()), qApp, SLOT(quit()));
}

Testons notre code ! une fenêtre s'ouvre


Rien de bien extraordinaire à première vue. Sauf que... si vous cliquez sur le bouton "Quitter", le programme s'arrête !

Utilisation de la méthode connect() pour afficher "A propos"

On peut faire un autre essai pour se faire un peu plus la main si vous voulez. Je vous ai parlé d'un autre slot de QApplication : aboutQt(). Je vous propose de créer un second bouton qui se chargera d'afficher la fenêtre "A propos de Qt".


---
--- c'est bon?
voici le code:

#include "MaFenetre.h"
 
MaFenetre::MaFenetre() : QWidget()
{
    setFixedSize(300, 150);
 
    m_quitter = new QPushButton("Quitter", this);
    m_quitter->setFont(QFont("Comic Sans MS", 14));
    m_quitter->move(110, 50);
    QObject::connect(m_quitter, SIGNAL(clicked()), qApp, SLOT(quit()));
 
    m_aPropos = new QPushButton("A propos", this);
    m_aPropos->setFont(QFont("Comic Sans MS", 14));
    m_aPropos->move(110, 90);
    QObject::connect(m_aPropos, SIGNAL(clicked()), qApp, SLOT(aboutQt()));
}

l'ancer l'apllication
Le bouton "Quitter" ferme toujours l'application.
Quant à "A propos", il provoque l'ouverture de la fenêtre "A propos de Qt".

parametre dans le signaux et les slot

La méthode statique connect() est assez originale, vous l'avez vu. Il s'agit justement d'une des particularités de Qt que l'on ne retrouve pas dans les autres bibliothèques.

<poem>maintenant comment faire une slider bar qui quand la valeur change fait changer la valeur d'un afficher LCD?

heu

heu

En travauxlink={{{link}}}

Cette page est en travaux. Tant que cet avis n'aura pas disparu, veuillez en considérer le plan et le contenu encore incomplets, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable, où des informations peuvent être données sur l'avancement des travaux.