Cours:QT : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
({{Bleu|attributs}})
({{Bleu|attributs}})
Ligne 60 : Ligne 60 :
 
Un attribut peut bien évidemment être de n'importe quel type, en particulier d'une de vos autres classes.
 
Un attribut peut bien évidemment être de n'importe quel type, en particulier d'une de vos autres classes.
 
Dans ce cas, on utilisera au besoin une référence sur l'objet.
 
Dans ce cas, on utilisera au besoin une référence sur l'objet.
ex :
+
 
 +
ex :
  
 
{| class="wikitable"
 
{| class="wikitable"

Version du 20 octobre 2017 à 14:13

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};


Un attribut peut bien évidemment être de n'importe quel type, en particulier d'une de vos autres classes. Dans ce cas, on utilisera au besoin une référence sur l'objet.

ex :

class FirstClasse
{
public :
  FirstClasse(float _y); //constructeur
private :
  float x{2.5}; //initialisation de x
  float y;
}

//initialisation de y dans le constructeur
FirstClasse::FirstClasse(float _y)
                         : y{_y}
{
}

class SecondeClasse
{
public :
  SecondeClasse(FirstClasse & _obj1); // constructeur
private :
  FirstClasse & obj1;     //
  FirstClasse obj2{1.2}; // initialisation de obj2
}

//initialisation de obj1 dans le constructeur
SecondeClasse::SecondeClasse(FirstClasse & _obj1)
                             : obj1{_obj1}
{
}
#include ....

FirstClasse monFirstObjet{6};
SecondeClasse monSecondeObjet{monFirstObjet};

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.