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 :

Fermeture d'une QProgressDialog indeterminée

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 53
    Points : 88
    Points
    88
    Par défaut Fermeture d'une QProgressDialog indeterminée
    Bonjour à tous,

    Je developpe une application qui entraine un traitement lourd, j'aimerai donc mettre une barre de progression QProgressDialog durant ce traitement afin que l'utilisateur voit qu'elle n'a pas planté.

    Le problème est que mon traitement lourd est récursif donc je n'ai pas de moyens pour connaître le nombre d'opération qu'il va effectuer.

    C'est pourquois je pensais mettre une QProgressDialog indeterminée au début du traitement et la fermer à la fin.

    j'aimerai faire à peut près la chose suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    QProgressDialog progress("wait",NULL,0,0,this);
    progress.exec();
    //ici mon traitement
    //fin du traitement
    progress.close();
    Or je n'arrive pas à fermer ma barre de progression...

    Quelqu'un aurait des suggestions ?

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Je pense que c'est plutôt reset qu'il te faut utiliser pour fermer.

    http://qt.developpez.com/doc/latest/...sdialog/#reset

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 53
    Points : 88
    Points
    88
    Par défaut
    le progress->reset() doit surement fonctionner mais maintenant le problème est d'afficher la barre car le progress->exec() l'affiche mais je dois la fermer pour que l'application continu son déroulement.

    Donc maintenant il me faut trouver comment afficher une QProgressDialog indeterminée sans utiliser exec()

  4. #4
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Bah après il suffit de lire la doc quoi.

    http://qt.developpez.com/doc/latest/qdialog/#exec

    Oui ça bloque. A la fin du descriptif, tu as les fonctions qui ont un rapport avec celle-ci, et open() ou show() semblent bien non ?

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 53
    Points : 88
    Points
    88
    Par défaut
    j'ai déjà essayé open() et show() mais le problème est que ma progress dialog s'ouvre mais l'interieure de ma progress dialog est transparant (comme si la fenêtre avait freeze) et on je voit que les contours de la fenêtre .
    Une fois le traitement terminée, la progressdialog se ferme et tout rentre dans l'ordre mais bon .. ^^

  6. #6
    Membre habitué Avatar de cfillion
    Homme Profil pro
    Arrangeur musical
    Inscrit en
    Avril 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Arrangeur musical
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2010
    Messages : 49
    Points : 168
    Points
    168
    Par défaut
    Tu dois utiliser les threads pour effectuer ton traitement.
    Utilise les signaux/slots pour savoir quand le traitement est terminé, et/ou pour transférer des donnés.

    Car pendant le traitement le thread principal est bloqué, ce qui empêche Qt de dessiner la fenêtre.

Discussions similaires

  1. [debutant] Pb fermeture d une fenetre
    Par yup dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 21/06/2006, 17h48
  2. Fermeture d'une requête
    Par brice.antoine dans le forum ASP
    Réponses: 2
    Dernier message: 20/07/2004, 09h43
  3. Detecter la fermeture d'une fenetre MsDos
    Par Akta3d dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/07/2004, 16h53
  4. Comment interdire la fermeture d'une fiche empilée ?
    Par psau dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/07/2004, 14h01
  5. [VB6] [MDI] Signaler la fermeture d'une fille à la mère
    Par cpri1shoot dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/04/2004, 08h57

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