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 :

NSNotificationCenter avec Qt


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de beni46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 62
    Par défaut NSNotificationCenter avec Qt
    Bonjour tout le monde,

    Je développe sous Mac depuis presque 1 ans et je souhaite créer des applications multi-plateformes (Mac et PC) grâce à Qt.

    La librarie Apple "Cocoa" contient beaucoup d'objet et de classe très intéressantes et très pratiques comme la classe NSNotificationCenter.

    En gros cette classe permet a n'importe qu'elle objet de créer dynamiquement (pendant l'exécution du programme) une notification à laquelle d'autres objets pourront s'inscrire pour être tenu informé d'un changement de l'objet qui a crée la notification.

    Donc par exemple un objet "roueDeVelo" peut créer une notification appelée "monRayonAChangé" et des objects, gérant par exemple la physique ou les graphisme du vélo, pourront s'enregistrer comme observateur de cette notification et donc seront informé lorsqu'un changement de rayon aura eu lieu.

    J'ai cherché un équivalent de ce principe dans Qt mais je n'ai rien trouvé de semblable. Existe-t-il un objet équivalent dans le framework de Qt qui m'aurait échappé? Existe-t-il un objet équivalent dans une autre librairie cross-plateformes?

    Mais il existe la notion de Signals et Slots qui pourrait aidé a reproduire ce genre d'objet, mais plusieurs problème se pose.

    On pourrait imaginer un objet ressemblant au NotificationCenter de cocoa mais pour cela il faudrait être en mesure de déclarer (ou autre) dynamiquement (pendant l'exécution) un nouveau signal dans la définition de cette classe ce qui me semble compliqué.

    Je me demande comment sont crée les Signals? Parce que ce sont des const char * alors il doit être possible de produire ces propres signal durant l'exécution?

    C'est une question qui ne me semble pas trivial, j'espère avoir été clair dans mon explication mais si ce n'était pas le cas je suis à votre disposition pour répondre à vos questions.

    J'utilise Qt 4.5.2 avec QTCreator 1.2.

    Merci d'avoir lu ce message.

    A bientôt.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut
    Citation Envoyé par beni46 Voir le message
    J'ai cherché un équivalent de ce principe dans Qt mais je n'ai rien trouvé de semblable. Existe-t-il un objet équivalent dans le framework de Qt qui m'aurait échappé? Existe-t-il un objet équivalent dans une autre librairie cross-plateformes?

    Mais il existe la notion de Signals et Slots qui pourrait aidé a reproduire ce genre d'objet, mais plusieurs problème se pose.
    Ce que tu décrit est correspond au signal/slot de Qt justement .

    Citation Envoyé par beni46 Voir le message
    On pourrait imaginer un objet ressemblant au NotificationCenter de cocoa mais pour cela il faudrait être en mesure de déclarer (ou autre) dynamiquement (pendant l'exécution) un nouveau signal dans la définition de cette classe ce qui me semble compliqué.
    Par contre les signaux ne peuvent pas être créé dynamique au cour de l'éxécution. Ils sont créés directement dans la définition d'une classe.
    Je te conseil fortement de commencer par ces tuto pour partir sur de bonne base :
    http://qt.developpez.com/tutoriels/introduction-qt/
    http://qt.developpez.com/doc/4.6-sna...ddressbook-fr/

    Et si tu débute en C++, n'hésite pas à regarder sur la partie C++, il y as de très bonne ressources pour apprendre.

  3. #3
    Membre confirmé Avatar de beni46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 62
    Par défaut
    Merci pour la réponses.

    L'aspect dynamique est la seul différence mais elle me semble importante et elle permet de réaliser des choses de manière moins contraignante (et plus dynamique). Mais je pense que cette limite est dû au C++ qui est un langage plus statique que l'objectif C.

    Enfin je te remercie pour la réponse.

    A bientôt

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par beni46 Voir le message
    L'aspect dynamique est la seul différence mais elle me semble importante et elle permet de réaliser des choses de manière moins contraignante (et plus dynamique).
    Si vraiment tu veut faire des choses dynamique, regarde QtScript, il me semble qu'il permet de faire cela.

  5. #5
    Membre confirmé Avatar de beni46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 62
    Par défaut
    Merci je vais voir ce que je pourrais faire avec le QtScript.

    A première vu ça semble intéressant.

    "C++ with the moc essentially gives us the flexibility of Objective-C or of a Java Runtime Environment, while maintaining C++'s unique performance and scalability advantages. It is what makes Qt the flexible and comfortable tool we have today."

    Trouver ici : http://qt.developpez.com/doc/4.5/templates/

    Les fichiers moc on l'air de palier au manque de flexibilité du C++. Je vais aussi chercher dans ce sens.

    Merci.

    A bientôt.

  6. #6
    Membre averti
    Inscrit en
    Août 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 25
    Par défaut
    as-tu regardé les fonctionalités de QtDBus?

    Alain

Discussions similaires

  1. requete avec OBCD et visual c++
    Par Anonymous dans le forum MFC
    Réponses: 12
    Dernier message: 18/11/2004, 16h15
  2. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 11h51
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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