Cours:InterfaceQT : Différence entre versions
| Ligne 48 : | Ligne 48 : | ||
=2ème bouton => notre slot ! = | =2ème bouton => notre slot ! = | ||
| − | N'oublions par que nous faisons de la | + | N'oublions par que nous faisons de la {{POO}}. |
| − | Un slot, c'est une méthode particulière. | + | |
| + | Si nous regardons dans l'arborescence du projet, il y a 2 fichiers mainwindows.cpp mainwindows.h qui définissent la classe MainWindow. | ||
| + | |||
| + | La fenêtre qui s'affiche est un objet de la classe MainWindow, comme vous pouvez le constater dans le fichier main.cpp : | ||
| + | <source lang=cpp> | ||
| + | ... | ||
| + | MainWindow w; | ||
| + | w.show(); | ||
| + | ... | ||
| + | </source> | ||
| + | |||
| + | Un slot, c'est une méthode particulière, c'est donc une fonctionnalité que nous ajoutons à notre objet. | ||
| + | |||
| + | On va donc ajouter un slot à la classe MainWindow pour associer une action particulière à un 2ème bouton | ||
| + | |||
| + | ==Le code :== | ||
| + | |||
| + | On ajoute dans le fichier mainwindows.h la déclaration de ce slot juste avant la fin de la classe: | ||
| + | <source lang=cpp> | ||
| + | ... | ||
| + | class MainWindow : public QMainWindow | ||
| + | { | ||
| + | ... | ||
| + | public slots: | ||
| + | void monAction(); | ||
| + | }; | ||
| + | </source> | ||
| + | |||
| + | On définit ensuite ce slot dans le fichier mainwindows.cpp | ||
| + | |||
| + | <source lang=cpp> | ||
| + | ... | ||
| + | //permet d'afficher des messages : | ||
| + | #include <QDebug> | ||
| + | ... | ||
| + | void MainWindow::monAction() | ||
| + | { | ||
| + | qDebug() << "clic !"; | ||
| + | } | ||
| + | </source> | ||
| + | |||
| + | ==Le graphisme== | ||
| + | |||
| + | *On repasse sur l'interface graphique, passer un mode "Edit widget" au besoin (les boutons du haut). | ||
| + | *On ajoute un 2ème bouton. | ||
| + | *On repasse en édition de signaux | ||
| + | **au signal clicked | ||
| + | **on associe le slot : | ||
| + | ***il n'apparaît pas dans la liste ! | ||
| + | ***editer | ||
| + | ***bouton {{Rouge|+}} dans la liste de slots | ||
| + | ***nom du slot : {{Rouge|monAction()}} | ||
| + | |||
| + | {{Todo|Let's try it and see}} | ||
Version du 7 novembre 2018 à 19:40
Sommaire
Projet QtCreator pour raspberryPi
- Nouveau Projet
- application Qt avec Widgets
- select kits
- Rpi
- cliquer sur manage
- appareil mobiles
- choisir périphérique rpi
- modifier nom d'hôte : ras-pi-xx
- xx est le numéro de la carte : par ex 05
- valider
- ajouter dans le fichier .pro les lignes suivantes après la ligne target= :
target.path = /root INSTALLS = target
Consulter cette page pour des explications plus détaillées
Lancer l'application pour vérifier la configuration
Premier bouton
Partie Graphique
- Navigateur de projet
- Forms
- mainwindows.ui
- glisser un pushbutton sur la fenêtre
- redimensionner éventuellement
Terminé ! Lancer l'application
Utilisation du bouton, signal/slot
- ouvrir au besoin l'interface graphique, de son petit nom qtDesigner
- dans les icônes du haut, cliquer sur Edit signals/slots
- cliquer sur le bouton, et relâcher lorsque lorsque vous voyez un symbole de "masse"
- une fenêtre s'ouvre
- à gauche, on choisit quel événement déclenche une action : c'est un signal émit par l'objet
- à droite, on choisir l'action effectuée, la méthode à exécuter : c'est un slot
- fermons la fenêtre lors de l'appui sur le bouton :
- cocher : afficher les signaux/slots hérités
- signal : clicked()
- slot : close()
2ème bouton => notre slot !
N'oublions par que nous faisons de la Programmation Orientée Objet.
Si nous regardons dans l'arborescence du projet, il y a 2 fichiers mainwindows.cpp mainwindows.h qui définissent la classe MainWindow.
La fenêtre qui s'affiche est un objet de la classe MainWindow, comme vous pouvez le constater dans le fichier main.cpp :
...
MainWindow w;
w.show();
...
Un slot, c'est une méthode particulière, c'est donc une fonctionnalité que nous ajoutons à notre objet.
On va donc ajouter un slot à la classe MainWindow pour associer une action particulière à un 2ème bouton
Le code :
On ajoute dans le fichier mainwindows.h la déclaration de ce slot juste avant la fin de la classe:
...
class MainWindow : public QMainWindow
{
...
public slots:
void monAction();
};
On définit ensuite ce slot dans le fichier mainwindows.cpp
...
//permet d'afficher des messages :
#include <QDebug>
...
void MainWindow::monAction()
{
qDebug() << "clic !";
}
Le graphisme
- On repasse sur l'interface graphique, passer un mode "Edit widget" au besoin (les boutons du haut).
- On ajoute un 2ème bouton.
- On repasse en édition de signaux
- au signal clicked
- on associe le slot :
- il n'apparaît pas dans la liste !
- editer
- bouton + dans la liste de slots
- nom du slot : monAction()