[QT] qsplashscreen

sarah -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
j'utilise le qt sous unix
je voudrais afficher un message d'attente pendant l execution d'une fonction qui prend un certain temps, de la manière suivante (dans ma classe) :
1. afficher un message d attente
2. appeler la fonction
3. fermer le message

j'ai essayé d'utiliser qsplashscreen mais elle attend apperement l'affichage d une application qui tarde, pas une fonction à terminer.

est ce que vous avez une idée?
merci d'avance
Configuration: Windows XP
Firefox 2.0.0.20

5 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    tu parle de ça :
    void QSplashScreen::finish ( QWidget * mainWin )
    
    Makes the splash screen wait until the widget mainWin is displayed before calling close() on itself.
    ?
    Ce n'est pas fait pour ce que tu veux faire à priori.
    Je pense qu'à ta place je ferai ça :
    Création d'un Widget avec le message d'attente (nommé wid)
    wid.show();
    fonction_super_longue();
    wid.close();
    je ne suis pas certain que ça fonctionne correctement, mais à tester.
    0
  2. sarah
     
    re bonjour
    merci pour votre réponse,
    j'ai essayé ce que vous venez de faire mais ça marchait pas comme je veux , la deuxième fenetre ne reste pas affichée pendant l execution de la première
    ?
    0
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    ça dépend comment s'exécute ta fonction. En même temps ou non ?
    Sinon, tu crée un widget bidon dont la seul tâche est de lancé la fonction :
    class bidon: public QWidget{
    bidon(){fonction_super_longue();close()}
    }
    et ensuite dans la fonction d'appel :
    QSplashScreen b;
    b.finish ( new bidon);
    (pas tester, mais c'est l'esprit)
    0
  4. sarah
     
    merci mais monsieur avec cet esprit,
    on revient au premier problème de qsplashscreen, il attend que l'application s'affiche(bidon)
    donc dès le début de bidon , le splash va se finir, avant la terminaison de ma fonction :)
    ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Tu as essayé ?
    Car comme il n'y a pas de show, elle ne devrais jamais se fermer ta fenêtre splash.
    Je pense que finish attend que bidon.isShown() soit vrai.
    Sinon, il faut jouer avec les signaux.
    0