IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Signals slots boost/libsigc++/Qt


Sujet :

Qt

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut Signals slots boost/libsigc++/Qt
    J'aimerais savoir qui utilise vraiment les signals/slots de Boost ou de libsigc++ ? j'ai recemment decider de les tester serieusement et de les comparer avec Qt ... c'est super lourd a utiliser comparé a Qt, alors peut-etre je les utilise mal ...

    Quelqu'un aurait de l'experience la autour ?

    a+

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Tu peux regarder sur ce lien que j'ai vu passer sur la mailing list de Qt : http://www.scottcollins.net/articles...and-slots.html

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    Merci pour le lien il est tres clair et tres explicite, il exprime bien les differences. Cependant je voulais avoir des avis de gens qui utilisent souvent et/ou dans le cadre professionnel les signals de boost et/ou libsigc++, ce qu'ils en pensaient et si ils pouvaient donner leurs avis par rapport a Qt si ils pouvaient.

    merci a+

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    J'ai utilisé Qt. J'ai utilisé et utilise boost:signal. Instinctivement, je n'ai jamais eu envie d'utiliser les signaux Qt pour autre chose que de l'IHM. En fait, ils m'apparaissent bien lourds par rapport aux signaux boost :
    - Nécessité d'un pré-processeur spécifique à passer sur de code
    - Limitations quant à ce qui peut capter un signal, comparé à la souplesse apportée par boost::bind.

    Ils sont peut-être moins simples à apprendre, mais je n'ai pas eu de problèmes pour les utiliser.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  5. #5
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Je suis dans le même cas que JolyLoic.
    Les signaux de Qt sont bien dans le cadre d'IHM. C'est lourd pour quelque chose qui sort du cadre de l'IHM. boost::signal suffit amplement et n'est pas vraiment lourd en plus.

  6. #6
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    boost.signal et libsigc++ sont en fait très similaires.
    Tu peux voir libsigc++ en usage dans GTKmm.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    Pourquoi les signaux de Qt conviennent bien pour l'IHM mais pas pour d'autre cas ? pourquoi specialement pour l'IHM ?

  8. #8
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Extrait de la doc Qt :
    All classes that contain signals or slots must mention Q_OBJECT at the top of their declaration. They must also derive (directly or indirectly) from QObject.

    Je n'ai aucune envie de rempire ces conditions pour des classes qui n'ont pas de rapport avec l'IHM de mon application.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    Citation Envoyé par JolyLoic
    Extrait de la doc Qt :
    All classes that contain signals or slots must mention Q_OBJECT at the top of their declaration. They must also derive (directly or indirectly) from QObject.

    Je n'ai aucune envie de rempire ces conditions pour des classes qui n'ont pas de rapport avec l'IHM de mon application.
    c'est philosophique alors
    mais ca serait homogene par contre ...

    je ne critique pas, je m'etais dis la meme chose, mais a la fin je me demande... le faire avec une autre lib n'ameliore pas les choses quand on change de plateforme....

    un grand atout des signaux de Qt je trouve est la deconnexion automatique lorsque l'objet se detruit, pas automatic dans boost (il faut heriter trackable) et ne marche pas dans tous les cas ... pas encore du moins mais ca fait deja un bout de temps.

    Je separe bien sur mon code metier du code IHM et je voulais aussi le rendre independant de Qt mais il y a pas mal de classes utiles qui me manqueraient sinon et qui faudrait que je refasse.....

    Alors j'hesite, j'utilise Qt du bout des doigts ou je fusionne completement avec et je ne me pose plus de question.....
    Quelqu'un a / avait le meme probleme ?

    a+

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    heu ?

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    bon bah apparement je dois etre le seul a me poser des questions ....

  12. #12
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Au niveau non-IHM, je ne vois ce que tu devrais refaire qui n'est pas proposé par des bibliothèques classiques genre Boost

  13. #13
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    C'est pas vraiment que les slots de Qt ne sont bons que pour l'IHM, c'est juste qu'ils ne sont bons que quand tu utilises Qt.

  14. #14
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par epsilon68
    c'est philosophique alors
    En partie, mais pratique aussi... Question de licenses, de taille des classes (le fait d'avoir du virtuel ajoute un overhead), le fait de devoir pré-processer le code qui m'a déjà posé problème avec Qt.

    Citation Envoyé par epsilon68
    un grand atout des signaux de Qt je trouve est la deconnexion automatique lorsque l'objet se detruit, pas automatic dans boost (il faut heriter trackable) et ne marche pas dans tous les cas ... pas encore du moins mais ca fait deja un bout de temps.
    Je n'ai jamais encore utilisé ces déconnections automatique, mais dire que pour l'avoir dans boost, on est obligé d'hériter d'une classe, je trouve ça peu convainquant comme témoin à charge de boost::signal dans une discussion boost::signal/Qt, étant donné que dans Qt, on doit toujours dériver d'une classe, qui plus est avec des fonctions virtuelles.

    Le fait que ça ne marche pas avec boost::function me semble bien plus gênant. Même si là aussi, les cas où on utilise boost::function sont souvent des cas où on n'aurait pas pu faire avec Qt. Le principal pour moi est que ça marche avec boost::bind, sans ça, effectivement, ça perdrait son intérêt.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  15. #15
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    je ne sais quoi repondre ....
    vous avez certainement raison...
    mais j'ai l'impression qu'il vaudrait tout de meme utiliser Qt au maximum si on fait une IHM avec... Ca rendrait le tout plus homogene et moins de dependance vers d'autres libs...

    en ce qui concerne les classes utiles sont les Threads/mutexes, les streams (unification des File* et des iostream), QString pour l'unicode, les sockets...
    les signaux sont aussi thread safe .....

    Reste quand meme la licence

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Thread] Signal/Slot et Thread
    Par ttone dans le forum Multithreading
    Réponses: 88
    Dernier message: 20/05/2008, 14h21
  2. Lier les signal/slot de Qt à boost::signal
    Par Davidbrcz dans le forum Qt
    Réponses: 7
    Dernier message: 25/04/2008, 11h50
  3. Problème de connect (signal/slots)
    Par Alain Defrance dans le forum Qt
    Réponses: 5
    Dernier message: 20/03/2008, 21h58
  4. help signal slot
    Par psyko72 dans le forum Qt
    Réponses: 1
    Dernier message: 31/12/2007, 13h51
  5. Connexion "directe" signal - slot
    Par broidsy dans le forum Qt
    Réponses: 3
    Dernier message: 27/02/2006, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo