[QT] qsplashscreen

Fermé
sarah - 11 juin 2009 à 13:28
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 11 juin 2009 à 16:35
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
A voir également:

5 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
11 juin 2009 à 14:17
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
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
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
11 juin 2009 à 16:01
ç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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
11 juin 2009 à 16:35
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