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 :

Avoir 2 classes mères?


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Par défaut Avoir 2 classes mères?
    Bonjour,
    Voilà mon soucis, je viens de faire une classe héritant de la classe QTime, afin d'y rajouter des signaux ( changement de minutes, d'heures... ).
    Le soucis, c'est qu'ensuite, en relient ces signaux avec QObject::connect(), ca pose un soucis...
    En effet, QTime n'hérite pas de QObject...

    J'voulais savoir donc, si j'pouvais faire hériter ma classe de deux classes mères :
    - QTime ( afin d'avoir tous les attributs et méthodes pour accéder à l'heure )
    - QObject ( afin de pouvoir utiliser les slots et signals avec )
    Mais il me semble que c'est pas possible.

    Comment pourrais je procéder autrement?

    Edit :
    Bon j'ai essayé l'héritage multiple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class JTime : public QObject, public QTime
    Tout se passe bien à la compile, mais pas à l'execution.
    Il semble que une instance de la classe JTime n'est pas accès aux méthodes de la classe QTime.
    Pas de message d'erreur ou autre, mais si j'fais des appels aux méthodes de QTime, il se passe rien ( c'est à dire aucune valeur retournée, ou aucune exécution... ).
    Je ne comprend pas.

  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
    Citation Envoyé par ZouBi Voir le message
    Tout se passe bien à la compile, mais pas à l'execution..
    Qu'es ce qui se passe à l'execution?

  3. #3
    Membre chevronné
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Par défaut
    bah c'est comme si tous les appels aux méthodes de QTime étaient ignorés.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    JTime myJTime;
    int heure = 0;
    heure = myJTime.hour();  //heure vaudra toujours 0.
    QString str = "";
    str = myJTime.toString("hh:mm:ss"); //str vaudra toujours "".
    voilà

    Finalement, j'ai trouvé.
    Dans le slot correspondant au timer, il fallait aussi mettre à jour l'heure exacte à chaque fois en rajoutant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setHMS ( currentTime().hour(), currentTime().minute(), currentTime().second(), currentTime().msec() );
    Truc bidon, mais j'y avais pas pensé.

  4. #4
    Membre chevronné
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Par défaut
    Bonjour !

    Voilà, un autre soucis maintenant.
    Admettons que j'utilise une variable globale ( je sais, say mal ) :
    ensuite, dans un widget, je souhaite connecter les signaux de cette variable globale à des slots :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QObject::connect(&myJTime, SIGNAL(secondChanged()), this, SLOT(update_horloge()));
    	QObject::connect(&myJTime, SIGNAL(hourChanged()), this, SLOT(nouvelle_heure()));
    bah le soucis, c'est que ça fonctionne pas, comme si le widget ne revevait jamais les signaux émient par myJTime...
    Pourquoi?

  5. #5
    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 ZouBi Voir le message
    Bonjour !

    Voilà, un autre soucis maintenant.
    Admettons que j'utilise une variable globale ( je sais, say mal ) :
    pas ce que c'est mal j'avais fait la même erreur.
    Normalement c'est pas que ta variable est créé avant l'exécution et que l'environnement Qt n'est pas encore initialisé. Si tu utilise un
    ca devrait mieux se passer. Faut bien sur l'initialiser
    As tu essayer en debug avec une console pour voir les messages?

  6. #6
    Membre chevronné
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Par défaut
    ouais finalement, j'ai utilisé une allocation dynamique en tant que variable globale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JTime* myJTime = new JTime;
    tout en oubliant pas de le delete à la fin du programme.

    Et là, ça passe tranquille

    En tout cas, merci beaucoup \o/

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/05/2006, 19h05
  2. Réponses: 16
    Dernier message: 07/02/2006, 14h19
  3. [POO]Appelé une méthode d'une classe mère
    Par LE NEINDRE dans le forum Langage
    Réponses: 2
    Dernier message: 14/12/2005, 14h44
  4. Réponses: 11
    Dernier message: 08/07/2005, 14h48
  5. Ma classe fille n'hérite pas de sa classe mère
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 15/06/2005, 12h49

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