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

Contenu supprimé Contenu ajouté
Athozus (discussion | contributions)
m Relecture
Athozus (discussion | contributions)
m →‎Utilisation : relecture
Ligne 162 :
==Utilisation==
 
Maintenant, on peut donc découvrir l'exemple qui sera sûrement un des plus utilisés.
maintenant voici l'exemple:<br />
 
bouton a le signal clicked()
et
application a le slot quit()
 
on connecte clicked() a quit()
et quand l'utilisateur clique sur le bouton l'application se ferme.
 
 
La classe <code>QPushButton</code> a un signal <code>clicked()</code>, qui s'active quand l'utilisateur clique sur le bouton. On le connecte donc au slot <code>quit()</code> de l'objet <code>qApp</code>, votre application.
===Découverte de <code>connect()</code>===
 
<code>connect()</code> est une méthode statique. On écrit donc :
pour appeler une méthode statique:
<source lang="cpp-qt">QObject::connect();</source>
 
Ligne 241 ⟶ 233 :
</source>
 
Exécutons la commande <code>qmake</code>, puis testons notre code. Une fenêtre s'ouvre.
 
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 !
Ligne 297 ⟶ 287 :
</source>
 
On compile maintenant, et le bouton "Quitter" ferme toujours l'application. Quant à "AÀ propos", il provoque l'ouverture de la fenêtre "AÀ propos de Qt".
lancer l'application<br />
 
Dans ce code, nous sommes dans la classe <code>MaFenetre</code>, qui hérite de <code>QWidget</code>, et donc de <code>QObject</code>. Comme <code>connect()</code> appartient à <code>QObject</code>, dans ce cas, vous pouvez le supprimer avec les <code>::</code>.
Le bouton "Quitter" ferme toujours l'application.<br />
Quant à "A propos", il provoque l'ouverture de la fenêtre "A propos de Qt".
 
==Paramétrage des signaux et des slots==