Programmation Qt/Un premier programme
Ce chapitre propose de créer un premier programme et de le compiler en utilisant des lignes de commandes, afin de se familiariser rapidement aux mécanismes de compilation de Qt.
Afficher un bouton.
Ce premier programme crée un bouton et l'affiche dans une fenêtre automatiquement créée par Qt.
Fichier.
int main(int argc, char* argv[])
 QApplication app(argc, argv);
 QPushButton hello("Hello world!");
 hello.resize(100,30);
 hello.show();
 return app.exec();
Compilation.
Pour compiler le programme :
 qmake -project
 qmake
 make
 nmake
 mingw32-make
Si aucune erreur ne se produit, deux sous-répertoires codice_3 et codice_4 ont été créés, et le fichier exécutable a été créé dans l'un d'eux :
Dans le cas contraire :
Exécution.
Au lancement du programme, une fenêtre s'affiche avec un bouton "Hello world!" au centre de celle-ci.
Code source expliqué.
Voici le détail du code source expliqué :
En-têtes.
Inclusion des fichiers d'en-tête définissant les deux classes utilisées dans le programme.
Fonction principale.
int main(int argc, char* argv[])
 //Code
Déclaration standard de la fonction principale lançant l'application.
Notez que l'on peut aussi le trouver écrit comme cela, bien que la version précédente soit plus complète :
int main()
 //Code
Application Qt.
 QApplication app(argc, argv);
Création de l'instance unique de la classe QApplication définissant la configuration par défaut des éléments graphiques.
Les arguments de la ligne de commande sont passés au constructeur pour qu'il interprète certaines options.
Les options reconnues et traitées sont retirées du tableau au retour du constructeur pour que l'application ne les traitent pas à son tour.
Parmi les options traitées :
Pour plus de détails sur les options traitées, voir https://qt-project.org/doc/qt-4.7/qapplication.html
Bouton.
 QPushButton hello("Hello world!");
Création d'un bouton dont le texte "Hello world!" est passé en paramètre du constructeur.
Configuration du bouton.
 hello.resize(100,30);
Redimensionne le bouton à 100 pixels de largeur et 30 de hauteur.
Afficher.
 hello.show();
Affiche le bouton dans une fenêtre créée pour le contenir.
Boucle de traitement des évènements.
 return app.exec();
Lancement l'exécution de la boucle traitant des évènements.
La méthode codice_11 retourne le code de retour du programme.
Fin.
Fin de la fonction principale.
Un second programme.
Voici un programme très simple qui permettra l'affichage d'une fenêtre, plus précisément la fenêtre principale.
Cette fois-ci le fichier projet sera créé manuellement.
Celui-ci définit le modèle de programme à produire (codice_12 pour une application), et la liste des fichiers sources et en-têtes.
TEMPLATE = app
SOURCES = main.cpp \
 mainwindow.cpp
HEADERS = mainwindow.h
Un fichier projet possède une syntaxe similaire à celle des fichiers Makefile.
Différentes variables sont définies (=) ou complétées (+=) :
int main ( int argc, char *argv[] )
 QApplication app(argc, argv);
 MainWindow mainWin;
 mainWin.show();
 return app.exec();
La fenêtre principale est allouée pour l'exemple sur la pile d'appel.
Cependant, dans le cas où plusieurs instances de cette fenêtre (pour ouvrir plusieurs fichiers par exemple) sont créées et ouvertes, ou fermées (dont probablement la première instance créée), il est préférable d'allouer la première instance sur le tas (utiliser un pointer et allouer avec codice_20) et d'utiliser l'option codice_21.
class MainWindow : public QWidget
 Q_OBJECT
public:
 MainWindow();
Cette fenêtre dérive de la classe QWidget comme tout objet Qt pour l'interface graphique.
Il s'agit avant tout d'un conteneur de widget plutôt que la fenêtre elle-même.
La macro Q_OBJECT est utilisée avec toute classe Qt pour définir les informations sur la classe.
MainWindow::MainWindow()
Compiler le programme.
La compilation s'effectue de la même façon que pour le programme précédent, excepté que la première commande (codice_22) n'est plus nécessaire puisque l'on a déjà un fichier projet (essais.pro).
Le nom de ce fichier projet détermine également le nom de l'exécutable (codice_23 sous Windows).
Exécution.
Les bibliothèques de Qt sont nécessaires à l'exécution de tout programme Qt :
Les bibliothèques en question sont en général :
En exécutant le programme, on obtient une fenêtre vide.
Explications.
TEMPLATE = app
SOURCES = main.cpp \
 mainwindow.cpp
HEADERS = mainwindow.h
Dans ce fichier, on met tous les fichiers et les headers utilisés.
int main ( int argc, char *argv[] )
 QApplication app(argc, argv);
 MainWindow mainWin;
 mainWin.show();
 return app.exec();
On inclue la création de fenêtres.
On inclue notre header. Attention de ne pas oublier les guillemets !
int main ( int argc, char *argv[] )
 //Code
On créé notre fonction principale.
 QApplication app(argc, argv);
On créé l'application.
 MainWindow mainWin;
 mainWin.show();
On appelle une fenêtre de type MainWindow et on l'affiche.
 return app.exec();
Exécution de l'application.