Les signaux et slots dans Qt 5.4

Les nouvelles syntaxes utilisables dans Qt 5

a marqué ce sujet comme résolu.

Tout le monde se secoue ! :D

J’ai commencé (mardi 04 novembre 2014 à 23h57) la rédaction d’un article au doux nom de « Les signaux et slots dans Qt 5.4 » et j’ai pour objectif de proposer en validation un texte aux petits oignons. Je fais donc appel à votre bonté sans limites pour dénicher le moindre pépin, que ce soit à propos du fond ou de la forme. Vous pourrez consulter la bêta à votre guise à l’adresse suivante :

Merci !

Salut,

Je pense que tu devrais changer le titre, quelqu’un qui connait mal Qt pourrais penser qu’il s’agit d’un contenu obsolète et ne même pas y jeter un oeil. Quelque chose comme "Les signaux et slots dans Qt : syntaxe moderne (à partir de Qt 5.4)". Et encore je ne suis pas sûr que ce soit utile de donner la version minimale dans le titre si tu la donnes dans le préambule.

Puisque tu parles de l’utilisation de fonction lambda, qui est vachement pratique, je trouve que ça vaut aussi le coup de mentionner std::bind pour faire matcher les arguments, même si ces situations peuvent se résoudre à coup de lambda.

Je m’attendais à ce qu’on parle aussi de disconnect, même si c’est plus simple je trouve qu’on en parle pas assez.
J’ai montré à un développeur que je considère très bon et plutôt expérimenté avec Qt, que la connection pouvait être stockée dans un QMetaObject::Connection, je m’étonnais qu’il ne connaisse pas.
EDIT : En fait la gestion des connexions actives sont dans les pistes "pour aller plus loin" donc ça me va, je trouve juste alors que c’est le titre qui devrait préciser qu’on se concentre sur le connect

+0 -0

Pauvre Jérome, qui m’envoie des corrections de temps en temps et que je mets des plombs à intégrer :)

Il faudrait pouvoir autoriser l’édition d’articles comme un wiki, où n’importe qui peut corriger des choses, potentiellement avec validation du premier auteur.

Dans tous les cas, ceux qui veulent modifier l’article, n’hésitez pas à proposer, je vous ajouterai comme auteur.

EDIT: pour les déconnexions, on peut ajouter une partie.

Déconnections et QMetaObject::Connection

Dans les parties précédentes, vous avez vu comment créer des connexions, mais il est également possible de supprimer des connexions existantes. Pour cela, il existe plusieurs méthodes :

  • supprimer l’objet émetteur ou récepteur. Lorsque que l’un des objets utilisés pour créer une connexion est détruit, cela détruit automatiquement toutes ses connexions.

  • utiliser la fonction membre QObject::disconnect. Cette fonction peut être utilisée avec différents paramètres que l’on va détailler par la suite.

bool	disconnect(const char *signal = nullptr, const QObject *receiver = nullptr, const char *method = nullptr) const
bool	disconnect(const QObject *receiver, const char *method = nullptr) const
bool	disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *method)
bool	disconnect(const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
bool	disconnect(const QMetaObject::Connection &connection)
bool	disconnect(const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)

explications sur QMetaObject::Connection retourné par connect. Sur bool retourné par disconnect.

Explication sur thread safe? Sur direct connection, auto connection, vs queued connection, etc?

+0 -0
Ce sujet est verrouillé.