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

Multithreading Discussion :

Problème avec QTimer et QThread [QThread]


Sujet :

Multithreading

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut Problème avec QTimer et QThread
    Bonsoir,

    Voila j'ai une classe qui hérite à la fois de QTimer et de QThread, et lorsque je compile le compilateur me lève une embiguité qui est que comme à la fois la classe QTimer et QThread ont une méthode "start()" il ne sait pas laquelle des deux classes il faut utiliser.

    Auriez-vous une solution à cette ambiguité svp?

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 41
    Par défaut
    Je vais peut-être répondre une connerie mais comme ta classe hérite des 2 autres, tu ne pourrais pas préciser la classe au moment de l'appel de start :

    QTimer::start() ou QThread::start() !!???

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut
    Toujours pareil

  4. #4
    Membre expérimenté
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Par défaut
    Il est techniquement interdit de dériver deux fois d'un QObject, or, QThread et QTimer dérive tous deux de QObject. Tu dois donc revoir ta conception pour contourner ce problème.

    En parlant de conception, pourquoi as tu besoin de dériver à la fois de QThread et de QTimer ?

  5. #5
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Citation Envoyé par Niak74 Voir le message
    Il est techniquement interdit de dériver deux fois d'un QObject, or, QThread et QTimer dérive tous deux de QObject. Tu dois donc revoir ta conception pour contourner ce problème.

    En parlant de conception, pourquoi as tu besoin de dériver à la fois de QThread et de QTimer ?
    +1.
    Impossible de faire de l'heritage multiple sur plusieurs QObject.
    De meme que Niak74 c'est très curieux de vouloir hériter de QTimer et de QThread ??
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut
    J'ai trouvé comment il faut faire, il suffisait juste de faire:

    Et de même pour le thread.

    Sinon je ne savais pas que l'on avait pas le droit d'hétiter à la fois de deux classe héritant elles-mêmes de QObject. Mais je voulais créer une classe contenant un timer et je voulais que cette classe soit threader c'est tout.

    En tout cas merci de vos réponse je viens d'apprendre quelque chose

  7. #7
    Membre expérimenté
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Par défaut
    Dans ce cas, et comme tu le dis, ta classe contient un QTimer. Inutile donc qu'elle dérive de cette classe.

    Dériver d'une classe signifie s'approprier son comportement, or toi, tu ne souhaites pas créer un Timer mais bien une tâche exécutable en parallèle à ton processus principal (= un QThread).
    La modélisation correcte est donc de dériver de QThread pour ta classe et d'implémenter un QTimer en paramètre de classe, ou, d'utiliser les méthodes QObject::startTimer(), QObject::killTimer() et timerEvent() propres à tout dérivé de QObject.


    Dans la conception actuelle (c'est à dire que ta classe dérive à la fois de QTimer et de QThread) tu arrives à compiler et à exécuter ton application? =O Si oui, fais moi voir ton .h s'il te plait, par curiosité ^^

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

Discussions similaires

  1. [QThread] Problème avec QTcpSocket et QThread
    Par luffydu22 dans le forum Multithreading
    Réponses: 2
    Dernier message: 13/10/2010, 09h26
  2. Problème avec QTimer
    Par Aure7780 dans le forum Qt
    Réponses: 22
    Dernier message: 08/06/2010, 15h01
  3. Problème avec QTimer
    Par crazy_inf dans le forum Qt
    Réponses: 1
    Dernier message: 06/04/2010, 10h51
  4. Qt Problème avec un QTimer
    Par U118gs dans le forum Qt
    Réponses: 3
    Dernier message: 22/08/2008, 09h28

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