Bonnes pratiques dans les en-têtes
:salut: à tous,
Me mettant doucement à Qt version C++, je me pose une question sur une bonne pratique concernant la conception des fichiers d'entête, notamment dans le cas de l'interaction entre le code C++ et QML.
Afin de pouvoir accéder aux fonctions C++ depuis le code QML il y a deux solutions possibles :
- ajouter le "tag" Q_INVOKABLE" ;
- ou mettre la fonction dans public slots.
Question : Quelle différence entre ces deux méthodes, et pourquoi préférer l'une à l'autre.
Tant que je suis dans les bonnes pratiques dans les headers, voici une autre question plus C++ que QML, mais qui devrait trouver réponse ici.
Jusqu'à présent, voici un exemple de ce que je fais pour définir et utiliser une fonction :
Code:
1 2 3 4 5
| // Fichier .h
void test (QString, int)
// Fichier .cpp
void test (QString toto, int a) |
À priori ça fonctionne puisque je n'ai pas d'erreur de compilation.
Cependant, je remarque que souvent la déclaration dans le .h comprends aussi les "noms" des variables ce qui donnerait dans le cas présent :
Code:
1 2
| // Fichier .h
void test (QString toto, int a) |
Même question que précédemment : Qu'est ce qui est le mieux, il y a t-il une grosse différence dans ces deux utilisations (performance, sécurité, ... ???)
D'avance merci pour vos conseils.
++
J