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 :

ordre des SLOTS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut ordre des SLOTS
    Bonjour,

    Je voudrais que lorsque j'appuie sur un QPushButton, plusieurs SLOT soient appelés mais dans un ordre bien précis.
    Dans mon cas, il génère le code1, va dans test, et génère le code2.
    Je n'arrive pas à faire qu'il :
    1) génère le code 1
    2) génère le code 2
    3) aille dans test

    Si quelqu'un à un moyen...

    Merci d'avance!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    main(){
    connect(bouton_simultane, SIGNAL(pressed()), this, SLOT(generer_code1()));
    connect(bouton_simultane, SIGNAL(released()), this, SLOT(generer_code2()));
    connect(this, SIGNAL(msg1(char*)), this, SLOT(test(char*)));
    connect(this, SIGNAL(msg2(char*)), this, SLOT(test(char*)));
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    generer_code1(){
    char* tab[k];
    ....
    emit msg1(tab[k]);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    generer_code2(){
    char* tab[k];
    ....
    emit msg2(tab[k]);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    test(char*){
    cout << "test";
    }

  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 : 43
    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,

    je vais peut être dire une bétise, mais pourquoi ne pas appeler les fonctions dans l'ordre voulu à partir d'une seul méthode?
    Du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    main(){
    connect(bouton_simultane, SIGNAL(clicked()), this, SLOT(generer_code1()));
    connect(this, SIGNAL(msg1(char*)), this, SLOT(test(char*)));
    connect(this, SIGNAL(msg2(char*)), this, SLOT(test(char*)));
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    generer_code1(){
    char* tab[k];
    ...
    generer_code2()
    emit msg1(tab[k]);
    }

  3. #3
    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 LeGars Voir le message
    Bonjour,
    je vais peut être dire une bétise, mais pourquoi ne pas appeler les fonctions dans l'ordre voulu à partir d'une seul méthode?
    C'est ce que je pensais mais j'ai du mal a comprendre le fil conducteur de son programme. J'ai l'impression qu'il manque des infos et qu'il ne choisit pas la manière la plus simple. Enfin je dit peut être une bêtise.
    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.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Par défaut
    Il me semble que Qt ne garanti pas l'ordre d'éxécution des slots en cas de multiple connexion.

  5. #5
    Membre expérimenté

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

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Par défaut
    Il me semble que Qt ne garanti pas l'ordre d'éxécution des slots en cas de multiple connexion.
    Ici il n'y a pas de multiple connexions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    connect(bouton_simultane, SIGNAL(pressed()), this, SLOT(generer_code1()));
    connect(bouton_simultane, SIGNAL(released()), this, SLOT(generer_code2()));
    Donc en théorie, pour que "generer_code2()" se lance après "generer_code1()", il faudrait cliquer sur le bouton, sans relacher le bouton de la souris, attendre que "generer_code1()" se termine, puis relacher...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut
    Le but serait pour moi de générer deux codes différents et de les traiter ensemble dans une autre fonction.

    Le problème est que le code1 se génère, mais le code2 reste tout le temps à zéro, car il rentre dans la fonction de traitement avec la génération du code2...

  7. #7
    Membre expérimenté

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

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Par défaut
    donc, en gros, dans le slot du bouton, suivre l'odre de l'idée :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {
       generer_code1();
       generer_code2();
       traitement();
    }

Discussions similaires

  1. Modifier l'ordre des Fields d'un dataset
    Par teska dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/03/2004, 16h38
  2. Modifier l'ordre des cartes son
    Par YéTeeh dans le forum Matériel
    Réponses: 3
    Dernier message: 19/08/2003, 01h13
  3. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53
  4. Question : ordre des bits ?
    Par Choupi dans le forum C
    Réponses: 3
    Dernier message: 11/02/2003, 06h22

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