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

Discussion :

Héritage multiple entre QObject et QGraphicsScene

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2010
    Messages : 13
    Par défaut Héritage multiple entre QObject et QGraphicsScene
    Bonsoir,

    J'ai fait une classe héritant de QObject que je vais appeler A.

    J'ai ensuite fait une classe B qui hérite de A et et QGraphicsScene et c'est là que le problème survient. Je sais que le multiple héritage de QObject ne fonctionne pas.

    C'est pourquoi je me tourne vers vous pour savoir comment je pourrais faire en sorte de créer des signaux et slots virtuelles dans ma classe A pour que toutes ses sous-classes puisses les utiliser (après les avoir réimplanté bien sûr). J'ai vu qu'il fallait la macro Q_OBJECT et que la classe hérite de QObject.

    Je suis au courant que c'est un héritage en diamant. J'ai déjà fait un héritage virtuel pour une autre class qui hérite également de QObject et cela fonctionne. C'est lorsque je veux hériter également d'une classe Qt (QGraphicsScene dans mon cas) que ça ne fonctionne pas car souvent les objets Qt sont des sous-classe de classes juqu'à QObject.

    Merci d'avance des vos réponses.

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 50
    Par défaut
    Bonjour,

    Il faut refaire un qmake sur le projet pour que la macro soit reconnue.

    Bonne chance

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2010
    Messages : 13
    Par défaut
    Merci d'avoir pris le temps de me répondre. Mais le problème ne se situe pas la. C'est qu'il est impossible de faire un héritage en diamant entre une classe qui hérite d'un QObject et une classe Qt qui hérite de QObject également.
    Je voudrai savoir comment faire pour avoir une classe de base qui permet d'utiliser les signaux et slots de Qt et qui peut être utilisé pour un héritage futur entre une de mes classes et une de Qt (tout deux héritant directement ou indirectement à QObject)

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 50
    Par défaut
    Moi j'ai une autre question quel est le but ? pourquoi faire une sorte de double spécialisation ?

    Si on prend un exemple :

    A (class abstraite)
    B (hérite de A)
    C (hérite de B)

    Dans C toutes les méthodes de A sont connues tu peux même les redéfinir dans B et C
    tu peux appelé depuis la class C les méthodes de la class A via A::toString() par exemple.

    Si on prend un autre exemple (le même qu'au dessus) et on dit que A est Animal, B Félin et C Chat

    Je sais que Chat est un animal via B (via A) pourquoi lui remettre que c'est un Animal.

    Sinon je pense pourquoi ça compile pas (je pense que c'est là que ça bloque) c'est au niveau de la suite dans la compilation en gros le compilateur essai de recompiler QObject qui a déjà été compiler au préalable (ou un truc du genre). Une manière de parer ça est d'utiliser les entêtes précompilées mais je doute que cela va fonctionner mais possible.

    Après pour si tu veux faire d'autre test, essai de créer une class qui hérite de QLabel et QPushButton.

    Voili voila

    ps : le polymorphisme c'est génial trop en faire c'est le mal tout comme le design pattern

Discussions similaires

  1. Héritage multiple de QObject
    Par MacPro dans le forum Qt
    Réponses: 1
    Dernier message: 19/01/2012, 16h52
  2. Héritage multiple et QObject
    Par thetopic dans le forum PyQt
    Réponses: 4
    Dernier message: 23/03/2009, 19h14
  3. L'héritage multiple est-il possible en Delphi ?
    Par SchpatziBreizh dans le forum Langage
    Réponses: 8
    Dernier message: 30/06/2005, 11h30
  4. utilisez vous l'héritage multiple ?
    Par vodosiossbaas dans le forum C++
    Réponses: 8
    Dernier message: 13/06/2005, 20h25
  5. [XML Schemas]héritage multiple
    Par nicolas_jf dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 10/06/2003, 12h55

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