« Programmation Qt/Les widgets » : différence entre les versions

Contenu supprimé Contenu ajouté
→‎QSpinBox : un champ de nombres : Ajout d'un partie Exercice
Athozus (discussion | contributions)
m Passage en police ressemblant à un code pour les noms de classes, propriétés, signaux, ...
Ligne 5 :
== Les widgets afficheurs ==
 
=== <code>QLabel</code> : afficher un texte ou une image ===
<code>QLabel</code> est un objet de Qt. Il permet d'afficher un texte ou une image.
 
==== Afficher du texte ====
Ligne 12 :
QLabel *m_texte = new QLabel(); // Création de l"objet
m_texte->setText("Mon texte"); // Définition du texte
</syntaxhighlight>La méthode à utiliser est donc <code>setText()</code>. Pour récupérer ce texte, utilisez la méthode <code>text()</code>.
 
==== Afficher une image ====
Pour afficher une image, utilisez la méthode <code>setPixmap()</code> :<syntaxhighlight lang="c++" line="1" start="3">
QLabel *m_image = new QLabel();
m_image->setPixmap(QPixmap("mon_image.png");
</syntaxhighlight>Vous pouvez utiliser la méthode <code>pixmap()</code> qui vous renvoie un <code>QPixmap</code>.
 
=== <code>QProgressBar</code> : une barre de progression ===
[[Fichier:QProgressBar.png|alt=QProgressBar de valeur 50%|vignette|200x200px|Une <code>QProgressBar</code>, avec pour valeur 50%]]
 
Pour afficher une barre de progression, il faut écrire :<syntaxhighlight lang="c++" line="1" start="1">
QProgressBar *m_progressbar = new QProgressBar(); /* Création de la barre de progression */
m_progressbar->setValue(50); /* Choix de la valeur de la barre → 50 % */
</syntaxhighlight>On remarque la présence de la méthode <code>setValue()</code>, pour choisir la valeur de cet objet, et on en déduit qu'il faut utiliser <code>value()</code> pour récupérer cette valeur. Pour les signaux, il y a <code>valueChanged()</code> qui s'active quand la valeur change.
 
== Les boutons ==
 
=== <code>QPushButton</code> : un bouton classique ===
[[Fichier:QPushButton.png|alt=Bouton de type classique|vignette|62x62px|Un bouton classique, affichant le texte "Quitter"]]
 
<code>QPushButton</code> est une classe de Qt permettant de créer un bouton de type classique.<syntaxhighlight lang="c++" line="1" start="1">
QPushButton *m_pushbutton = new QPushButton();
m_pushbutton->setText("Quitter");
Ligne 40 :
==== Signaux : ====
 
* '''<code>clicked()</code>''' : est envoyé quand on clique sur le bouton
* <code>pressed()</code> : est envoyé tant que le bouton est préssée
* <code>released()</code> : est envoyé quand le bouton est relaché
 
Application :<syntaxhighlight lang="c++" line="1" start="3">
Ligne 48 :
</syntaxhighlight>
 
=== <code>QCheckBox</code> : une case à cocher ===
[[Fichier:QCheckBox.png|alt=Deux QCheckBox|vignette|187x187px|Deux <code>QCheckBox</code>, mis en place grâce à un [[Programmation Qt/Le positionnement des widgets|layout]].]]
La case à cocher est présente dans Qt sous la forme d'un <code>QCheckBox</code>. Pour en créer une, il faut suivre le processus habituel :<syntaxhighlight lang="c++" line="1" start="1">
QCheckBox *caseACocher = new QCheckBox(" J'aime Qt");
</syntaxhighlight>
 
=== <code>QRadioButton</code> : un bouton radio ===
Les boutons radio sont des groupes de boutons dont un seul de ceux-ci peut être coché. Pour en créer, cela change car il faut créer un objet de type <code>QGroupBox</code>, pour définir quels boutons iront ensemble ("Je programme en Qt" et "J'habite à New York" ne feront pas parti du même objet <code>QGroupBox</code>. Observons donc le protocole :
[[Fichier:QRadioButton.png|vignette|droite|Plusieurs <code>QRadioButton</code> réunis dans un <code>QGroupBox</code>|alt=]]
<syntaxhighlight lang="c++" line="1" start="1">
QGroupBox *qgroupbox = new QGroupBox("Votre language de programmation préféré :"); /* Création du QGroupBox */
Ligne 74 :
Les champs sont des widgets où l’utilisateur entre une information.
 
=== <code>QLineEdit</code> : un champ de texte à une ligne ===
Pour créer un champ de texte à une ligne en Qt, il faut créer un objet de type <code>QLineEdit</code> :
<syntaxhighlight lang="c++" line="1" start="1">
QLineEdit *m_lineEdit = new QlineEdit();
Ligne 81 :
</syntaxhighlight>
 
=== <code>QTextEdit</code> : un champ de texte multiligne ===
Pour créer un champ de texte multiligne en Qt, c'est un objet <code>QTextEdit</code> qu'il faut créer :<syntaxhighlight lang="c++" line="1" start="1">
QTextEdit *m_textedit = new QTextEdit();
</syntaxhighlight>
 
=== <code>QSpinBox</code> : un champ de nombres ===
Un <code>QSpinBox</code> est un champ de texte pour nombres. Le protocole pour créer un objet de ce type est le suivant :<syntaxhighlight lang="c++" line="1" start="1">
QSpinBox *m_spinbox = new QSpinBox();
</syntaxhighlight>
Ligne 93 :
==== Propriétés ====
 
* <code>step</code> : le pas de déplacement des nombres.
* <code>minValue</code> : la valeur minimale
* <code>maxValue</code> : la valeur maximale
 
Modifions les propriétés ci-dessus :<syntaxhighlight lang="c++" line="1" start="2">
Ligne 104 :
 
==== Exercice ====
Pour s'entraîner un peu, essayez de modifier la valeur d'un <code>QProgressBar</code> avec un <code>QSpinBox</code>.
 
=== <code>QDoubleSpinBox</code> : un champ de nombres non-entiers ===
Un <code>QDoubleSpinBox</code> est un <code>QSpinBox</code> à l'exception qu'il gère aussi les nombres non-entiers. Pour créer un objet de ce type, suivez le code suivant :<syntaxhighlight lang="c++" line="1" start="1">
QDoubleSpinBox *m_doublespinbox = new QDoubleSpinBox(); /* Création de l'objet */
</syntaxhighlight>
Ligne 113 :
==== Propriétés ====
 
* les mêmes que <code>QSpinBox</code>
* <code>decimal</code> : le nombre de chiffres après la virgule
 
Modifions les propriétés :<syntaxhighlight lang="c++" line="1" start="2">