Débuter dans la création d'interfaces graphiques avec Qt 4

Image non disponible


précédentsommairesuivant

II. Terminer proprement l'application

t2.rar

Fichiers
  • tutorials/tutorial/t2/main.cpp
  • tutorials/tutorial/t2/t2.pro

Cet exemple est une extension de la fenêtre créée dans le chapitre 1. Nous allons maintenant continuer afin de terminer proprement l'application sur requête de l'utilisateur.

Image non disponible

Nous allons également utiliser une police plus attrayante que celle par défaut.

 
Sélectionnez

 #include <QApplication>
#include <QFont>
#include <QPushButton>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QPushButton quit("Quit");
    quit.resize(75, 30);
    quit.setFont(QFont("Times", 18, QFont::Bold));

    QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));

    quit.show();
    return app.exec();
} 

II-A. Analyse du code ligne par ligne

 
Sélectionnez

 #include <QFont> 

Comme ce programme utilise la classe QFont, <QFont>a besoin d'être inclus.

 
Sélectionnez

 QPushButton quit("Quit"); 

Cette fois, le bouton affiche Quit et c'est exactement ce que le programme va faire quand l'utilisateur cliquera dessus.

 
Sélectionnez

 quit.resize(75, 30); 

Comme le texte est un peu plus court que "Hello World!", nous avons choisi une autre taille pour le bouton. Nous aurions également pu utiliser QFontMetrics pour configurer la taille ou laisser QPushButton en choisir une raisonnable par défaut.

 
Sélectionnez

 quit.setFont(QFont("Times", 18, QFont::Bold)); 

Ici nous choisissons une nouvelle police pour le bouton de la famille Times, de taille 18 et avec le style gras.

 
Sélectionnez

 QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit())); 

QObject::connect() est peut-être la fonction la plus indispensable de Qt. Notez que la méthode connect() est statique dans QObject. Ne la confondez pas avec la méthode connect() de la librairie de sockets Berkeley.

Cet appel à connect() établit une connexion à sens unique entre deux objets Qt (objets qui héritent de QObject, directement ou indirectemment). Tous les objets Qt peuvent avoir des signaux (pour envoyer des messages) et des slots (pour en recevoir). Tous les widgets sont des objets Qt car ils héritent de QWidget, qui hérite elle-même de QObject.

Ici, le signal clicked() de quit est connecté au slot quit() de app, donc, quand on clique sur le bouton, l'application se termine.

La documentation des signaux et des slots décrit ce sujet en détail.

II-B. Lancer l'application

Quand vous lancez ce programme, vous voyez un bouton dans une fenêtre encore plus petite que dans le chapitre 1.

Consultez le chapitre 1 pour savoir comment créer un makefile et compiler l'application.

II-C. Exercices

Essayez de redimensionner la fenêtre. Cliquez sur le bouton pour fermer l'application.

Y-a-t'il d'autres signaux dans QPushButton que l'on puisse connecter pour quitter? [indice: QPushButton hérite la plupart de ses fonctionnalités de QAbstractButton]


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2009 . Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.