wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 2
Pub hébergeur
Pourquoi cette pub ?

Valid XHTML 1.0 Transitional

Valid CSS2

Menu Snippets (navigation):
Pages: 1    Accueil » Snippets » Divers
» [wxGauge & wxProgressDialog] : Créer une barre de progression.
Détails du snippet : [wxGauge & wxProgressDialog] : Créer une barre de progression.
Informations sur l'auteur de ce snippet :


Hors ligne
Warzer (Membre)
Inscrit le : 05-10-2007
Messages: 284
Snippets: 4
Tutoriels: 0
Introduction / Description :
Bonjour,

Aujourd'hui bon nombre de programme les utilisent, je parle bien sûr des barres de progressions.

Vous aussi vous en voulez une (ou plusieurs) pour informer l'utilisateur de votre logiciel de l'avancement d'une action c'est simple je vous explique tout après.

Un exemple d'utilisation de wxGauge :
http://i209.photobucket.com/albums/bb283/warzer/gaugePourSnippets.jpg

Un autre exemple qui utilise cette fois-ci wxProgressDialog :
http://i209.photobucket.com/albums/bb283/warzer/gaugeProgression_snippet.png
Contenu du snippet :
Code pour wxGauge

Code wxWidgets:

 
int value = 1000;
//On crée une fenêtre qui va acceuillir la gauge
wxFrame *loadFrame;
//la taille sera égale à l'image du dessus
loadFrame = new wxFrame(NULL,-1,_T("Chargement en cour ..."),wxDefaultPosition,wxSize(200,50));     
loadFrame->Show(true)//on fait apparaître la fenêtre
 
/*
On crée une gauge qui sera dans la fenêtre que l'on vien de créer.
value sera le nombre de pas de votre gauge donc ici pour l'exemple 1000 et donc pour la taille
c'est pareil que l'image du dessus, enfin pour que ça rentr juste dans le fenêtre
*/

wxGauge loadGauge(loadFrame,-1,value,wxDefaultPosition,wxSize(200,30));
 
for(int i = 0; i < value; i++)
{
    /*
    Enfin pour cet exemple la gauge augmente ici à chaque
    tour de boucle de 1 pas
    */

    loadGauge.SetValue(i);     
}
 
//On ferme la fenêtre
loadFrame->Show(false);
 


Code pour wxProgressDialog

Code wxWidgets:

 
    //On déclare une valeur Max pour la barre de progression.
    int value = 1000;
    wxString texte;
    /*
    Le premier argument est le nom de la fenêtre,
    le second le texte afficher en premier lors de la création de la fenêtre
    et enfin le troisième est la valeur maximum de la barre de progression.
    */

    wxProgressDialog ProgressBox(_T("Chargement d'images"),_T("D\351but du chargemet"),value);
    for(int i = 0; i <= value; i++)
    {
        /*
         On incrémente de 1 la barre et on affiche un texte qui correspond à ce que l'on   
         charge par exemple, cet argument peut aussi ne pas être mit par défaut
         il n'affichera pas de texte.
        */

        texte << i;
        ProgressBox.Update(i, texte);
        texte << _T("");
    }
 
Explications finales :
Voilà c'est aussi simple que ça.

Les valeurs que j'ai donnée ici sont pour une Gauge et une fenêtre de dimension égale à celle du dessus, bien sûr, libre à vous de l'intégrer dans votre programme comme bon vous semble. Vous pouvez par exemple ajouter un bouton Annuler qui arrêtera le chargement enfin bref ...

Sinon pour plus d'info sur les fonctions de wxGauge je vous renvoie à la doc : wxGauge

Pour ce qui est de wxProgressDialog il n'y a rien de bien compliqué non plus c'est pourquoi si vous voulez en savoir plus je vous renvoie à la doc : wxProgressDialog

En espérant que ça vous sera utile.

A bientôt !

ps : je suis asse mauvais en orthographe je fais des efforts, mais si vous trouvez des fautes dites le moi merci
Commentaires
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1368
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Ça y est : notre ami Warzer a démarré la machine à snippets :lol:
Tant mieux !
Pourvu qu'il ne l'arrête pas.

Sinon : tu peux éventuellement parler de wxProgressDialog pour ce genre de choses.

Et pour tes problèmes d'orthographe : un petit tour sur bonpatron.com devrait te rendre service.

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
Mathelec (Membre)
Inscrit le : 26-11-2007
Messages: 44
Snippets: 0
Tutoriels: 0
Hors ligne
Tu devrais ajouter un sleep :) !
Warzer (Membre)
Inscrit le : 05-10-2007
Messages: 284
Snippets: 4
Tutoriels: 0
Hors ligne
Voilà j'ai suivi tes conseilles Xaviou, maintenant tu saura comment l'utilisé cette classe :p

Sinon le sleep pourquoi tu l'utiliserai ? enfin je ne sais pas à quoi il sert alors éclaire moi s'il te plait ^^
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1368
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
A mon avis, le sleep c'était uniquement pour ralentir la progression dans ton exemple

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
Mathelec (Membre)
Inscrit le : 26-11-2007
Messages: 44
Snippets: 0
Tutoriels: 0
Hors ligne
Enfin je ne vois pas vraiment l'intérêt car il faudrait alors lier le chargement à quelque chose qui a besoin de temps derrière.
zoloft (Invité)
trouduc a écrit:
qyzgt8t-sdy3678-tw6qfe69-0 http://www.rxsslscripts.com/tinyurl3/on … ker.html#1
<a href="http://www.rxsslscripts.com/xrl/poker.html#2">poker</a>
meridia
http://www.ewb-india.org/sf2k/topic.asp?TOPIC_ID=367#4
[http://www.rxsslscripts.com/tinyurl3/online-poker.html#5 online poker]
"viagra":http://www.rxsslscripts.com/xrl/viagra.html#6
[LINK http://www.smallurl.info/?r=325#7]homeowners insurance[/LINK]
Edit par Xav' : Oups, je crois qu'il restait une petite porte d'entrée pour ces connards. C'est normalement corrigé. Désolé du dérangement...
patrick (Nouveau membre)
Inscrit le : 20-01-2009
Messages: 2
Snippets: 2
Tutoriels: 0
Hors ligne
Ok cool.

Comment on l'adapte genre pour un téléchargement de fichier de manière réaliste ? ( % de téléchargement )

Il faut utiliser des thread je suppose ???
personne pour un snippet thread ?
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1368
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.
@Patrick : Comme tu pourras le constater sur la doc officielle du wxProgressDialog, la méthode "Update" prend en paramètre un entier (pour spécifier la valeur de la barre de progression) ainsi qu'un wxString pour modifier le message affiché. Tu peux mettre ton pourcentage de téléchargement dedans.

Pour le snippet "thread", je verrais ça dès que je trouverais un moment (et surtout que je n'en aurais pas la flemme ;/ ). Si quelqu'un d'autre veut s'en charger, je laisse la place sans problème :lol:

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
Menu Snippets (navigation):
Pages: 1    Accueil » Snippets » Divers
» [wxGauge & wxProgressDialog] : Créer une barre de progression.