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 :

Multi héritage Qt -> multi héritage de QWidget ?

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de gassi64
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2008
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 255
    Par défaut Multi héritage Qt -> multi héritage de QWidget ?
    Bonjour,
    J'ai un souci de débutant Qt, voir C++.

    J'ai plein de classes héritant des QWidget de base (QPushButton, QLabel, ...)
    Dans chacune je veux avoir une méthode doTreatment(int).
    Je crée une classe "Widget" héritant de QWidget héritée par toute les autres. Pourquoi? pour pouvoir appeler dans le code client Widget->resize() par ex.
    Et donc là, je voudrais faire hériter chacune de Widget :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class Widget : public QWidget
    {//juste le constructeur};
     
    class PushButton : public QPushButton, public Widget
    {};
    Et là bien sûr ça compile pas...
    Comment faire pour factoriser du code nouveau pour un ensemble de QWidget ?

    Merci...

  2. #2
    Membre expérimenté

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Par défaut
    Bonjour,

    Comme les classes héritent à la fois "QWidget de base" et d'un classe perso, il n'y a pas besoin de faire hériter Widget de QWidget.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Widget
    {//juste le constructeur};
     
    class PushButton : public QPushButton, public Widget
    {};
    Les méthodes types resize(), update()... seront fournis par la classe QPushButton étant donné que lui hérite de QWidget

  3. #3
    Membre éclairé Avatar de gassi64
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2008
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 255
    Par défaut
    c'est exactement ça. ça fonctionne bien mais j'avais alors pas pensé à casté le Widget instancié en QWidget pour accéder à toutes les méthodes requises ensuite.

    Merci beaucoup!

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/03/2015, 07h53
  2. Existe-t'il une norme multi-plateforme pour le multi-thread
    Par ol9245 dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 23/10/2012, 08h39
  3. Multi-héritage de QWidget
    Par scheme dans le forum Qt
    Réponses: 5
    Dernier message: 03/09/2010, 10h56
  4. [DC] faux multi héritage
    Par pline dans le forum Diagrammes de Classes
    Réponses: 10
    Dernier message: 26/02/2008, 10h05
  5. Recherche multi selection (et non multi critére)
    Par ange_dragon dans le forum Modélisation
    Réponses: 12
    Dernier message: 29/05/2007, 18h23

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