Cours:QT : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
m ({{Bleu|Modifier la couleur d'un bouton}})
Ligne 1 : Ligne 1 :
 +
={{Rouge|Classe}}=
 +
 +
=={{Bleu|attributs}}==
 +
 +
Lorsqu'on définit sa propre classe, il convient d'initialiser les attributs.
 +
Ceci peut-être fait de 2 façons :
 +
 +
{| class="wikitable"
 +
|-
 +
| Valeur initiale fixe || Valeur initiale variable
 +
|-
 +
|
 +
<source lang=cpp>
 +
class MaClasse
 +
{
 +
public :
 +
  MaClasse(); // constructeur
 +
 +
private :
 +
  // l'attribut x est initialisé à la valeur 5
 +
  int x{5};
 +
 +
}
 +
</source>
 +
||
 +
<source lang=cpp>
 +
class MaClasse
 +
{
 +
public :
 +
  MaClasse(int _x); // constructeur
 +
 +
private :
 +
  // l'attribut x sera initialisé par le constructeur
 +
  int x;
 +
}
 +
 +
// constructeur avec initialisation de l'attribut x :
 +
MaClasse::MaClasse(int _x)
 +
                  : x{_x}
 +
{
 +
}
 +
</source>
 +
 +
|-
 +
|
 +
<source lang=cpp>
 +
#include "maclasse.h>
 +
 +
MaClasse objet1;
 +
</source>
 +
||
 +
<source lang=cpp>
 +
#include "maclasse.h>
 +
 +
MaClasse objet2{5};
 +
</source>
 +
|}
 +
 +
 
={{Rouge|signal/slot}}=
 
={{Rouge|signal/slot}}=
  

Version du 19 octobre 2017 à 20:37

Classe

attributs

Lorsqu'on définit sa propre classe, il convient d'initialiser les attributs. Ceci peut-être fait de 2 façons :

Valeur initiale fixe Valeur initiale variable
class MaClasse
{
public :
   MaClasse(); // constructeur

private :
   // l'attribut x est initialisé à la valeur 5
   int x{5};

}
class MaClasse
{
public :
   MaClasse(int _x); // constructeur

private :
   // l'attribut x sera initialisé par le constructeur
   int x;
}

// constructeur avec initialisation de l'attribut x :
MaClasse::MaClasse(int _x)
                  : x{_x}
{
}
#include "maclasse.h>

MaClasse objet1;
#include "maclasse.h>

MaClasse objet2{5};


signal/slot

La page signal&slots de la documentation QT peut être intéressante à consulter.

relier signal et slot

On utilise la fonction {Rouge|connect}} :

connect( objet émetteur, signal émis , objet récepteur, signal reçu );

ex :

 connect( ui->monBouton, SIGNAL( clicked() ), this, SLOT( monAction() ));

Attention, il faut utiliser l'adresse de l'objet, donc si vous n'utilisez pas de pointeur :

&monObjet
 ....
 Lampe maLampe;
 ....
 connect( ui->monBouton, SIGNAL( clicked() ), &maLampe , SLOT( monAction() ));


graphisme

Modifier la couleur d'un bouton

On utilise la méthode setStyleSheet :

 monBouton.setStyleSheet("background-color: black;");

Dans une application graphique QT classique, l'objet ui représente le "conteneur" des widgets. On aura donc :

 ui->myPushButton->setStyleSheet("background-color: red;");

La liste des couleurs prédéfinies se trouve sur le site de documentation de QT.