Partage
  • Partager sur Facebook
  • Partager sur Twitter

Qt slots obligatoires?

Sujet résolu
    9 janvier 2021 à 17:24:21

    Bonjour,

    par curiosité,  quel intérêt y a-t-il encore à déclarer ses fonctions appelées par des signaux sous "public slots:" au lieu de simplement "public:"?

    Merci pour vos réponses.

    • Partager sur Facebook
    • Partager sur Twitter
      9 janvier 2021 à 18:25:42

      Pour que les slots soient enregistrés dans les meta objets, et donc pouvoir les appeler via QMetaObject (invoke, avoir la liste des methodes, etc)

      Et accessoirement pour la doc.

      • Partager sur Facebook
      • Partager sur Twitter
        9 janvier 2021 à 18:38:05

        Merci pour ta réponse.

        Comme je ne voyais pas trop à quoi correspond "QMetaObject", je suis allé voir la doc. On peut y lire:

        "This class is not normally required for application programming, but it is useful if you write meta-applications, such as scripting engines or GUI builders.".

        Du coup, je me trompe si on peut considérer que dans plus de 99% des applications on peut se passer de "public slots"?

        -
        Edité par zoup 9 janvier 2021 à 18:38:57

        • Partager sur Facebook
        • Partager sur Twitter
          9 janvier 2021 à 18:57:28

          Dans 99%, ca ne sera pas utilisé.

          Pour autant, je conseille de le faire quand meme :

          - pour respecter les écritures idiomatiques (ie faire comme cela parce qu'on a l'habitude de faire comme cela)

          - pour documenter le code

          class MonObject : public QObject {
              Q_OBJECT
          ...
          
          public slots:
              void onButtonClicked();
          };

          Dans ce code par exemple, une fonction qui s'appelle "onXxx", on s'attend que ce soit un slot. Et donc que ce soit indiqué comme tel.

          Mais le code sera valide sans.

          • Partager sur Facebook
          • Partager sur Twitter
            9 janvier 2021 à 20:17:17

            C'est vrai que ça ne coute pas grand chose. Et si c'est pour la bonne cause ...
            • Partager sur Facebook
            • Partager sur Twitter

            Qt slots obligatoires?

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown