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 :

QThread et héritage [QThread]


Sujet :

Multithreading

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Par défaut QThread et héritage
    Bonjour,

    je rencontre actuellement un problème avec mon programme. Mon programme se connecte à un serveur, récupère une page Pour le moment, il marche très bien. Mais ce que j'aimerais, c'est qu'il se màj seul, sans que j'ai besoin d'appuyer sur "actualiser".

    J'ai crut comprendre qu'il fallait créer une nouvelle classe : ce que j'ai fait; Mais le problème c'est que je n'arrive pas à lancer ma méthode dans la classe mère (j'ai encore un peu de mal avec les notions d'héritages en C++ ...)

    Voici mon code :

    MyThread.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #ifndef MYTHREAD_H
    #define MYTHREAD_H
     
    #include <QApplication>
    #include <QtGUI>
    #include <QThread>
    #include <unistd.h>
     
    #include "FenPrincipale.h"
     
    class MyThread : public QThread
    {
        Q_OBJECT
     
        public:
                MyThread();
     
        public slots :
                void run();
     
        signals :
                void valueChanged(int i);
                void complete();
     
        public :
                int i;
    };
     
    #endif

    MyThread.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include "MyThread.h"
     
     
    MyThread::MyThread()
    {
     
    }
     
    void MyThread::run()
    {
       while(1)
       {
            FenPrincipale::rechargerInfos();
            sleep(60);
       }
    }
    Et mon fichier FenPrincipal.h (je pense que le .cpp est inutil)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    #ifndef HEADER_FENPRINCIPALE
    #define HEADER_FENPRINCIPALE
     
    #include <QApplication>
    #include <QtGui>
    #include <QtNetwork>
    #include <QNetworkReply>
    #include <QNetworkRequest>
    #include <QNetworkAccessManager>
    #include <QEventLoop>
    #include <QSystemTrayIcon>
    #include <string>
    #include <iostream>
     
    #include <unistd.h>
     
     
     
    class FenPrincipale : public QMainWindow
    {
        Q_OBJECT
     
    	public:
    		FenPrincipale();
     
    	private:
            void creerMenus();
            void actions();
            void creerBarresOutils();
            void creationSousFenetre();
            void creationBarreEtat();
            QString retourneAfficher();
            void telechargement(QString ip);
            void info();
     
        private slots:
            void rechargerInfos();
            void enregistrer_papier();
            void enregistrer_conso();
            void messageErreur(QNetworkReply::NetworkError);
            void analyseFichier(QString ip);
     
        signals:
        void fichierRecOk(QString ip);
     
        private:
            QAction *actionQuitter;
            QAction *actionActualiser;
            QProgressBar *progression;
            QStatusBar *barreEtat;
            QString nomFichier;
     
            //sous-fenêtre
            QWidget *zone1;
            QWidget *zone2;
            QWidget *zone3;
            QWidget *zone4;
            QWidget *zone5;
            QWidget *zone6;
     
            //label
            QLabel *labelZone1;
            QLabel *labelZone2;
            QLabel *labelZone3;
            QLabel *labelZone4;
            QLabel *labelZone5;
            QLabel *labelZone6;
     
    };
    #endif
    Merci infiniment pour votre aide

  2. #2
    Membre chevronné
    Avatar de haraelendil
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 283
    Par défaut
    Il sert à quoi ton thread la? juste à rafraichir la page régulièrement? parce que dans ce cas la, utilise un QTimer, les thread est les interfaces graphiques ne font pas bon ménage (enfin les threads qui bidouillent les interfaces graphiques pour être plus exact...)

  3. #3
    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 haraelendil Voir le message
    Il sert à quoi ton thread la? juste à rafraichir la page régulièrement? parce que dans ce cas la, utilise un QTimer, les thread est les interfaces graphiques ne font pas bon ménage (enfin les threads qui bidouillent les interfaces graphiques pour être plus exact...)
    c'est même interdit dans Qt.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Par défaut
    D'accord merci, je vais alors me renseigner sur QTimer. Merci pour vos réponses.

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

Discussions similaires

  1. [Postgresql]Héritage
    Par lheureuxaurelie dans le forum PostgreSQL
    Réponses: 13
    Dernier message: 02/10/2008, 09h18
  2. [Héritage] Vos commentaires....
    Par Fyna dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 03/05/2005, 22h10
  3. [XML Schemas]héritage multiple
    Par nicolas_jf dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 10/06/2003, 12h55
  4. [Postgres] Héritage + Clés
    Par k-reen dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 21/05/2003, 16h37
  5. Héritage entre Forms
    Par BarBal dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 17h44

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