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

Qt Discussion :

Valeur de QProgresseBar


Sujet :

Qt

Vue hybride

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Par défaut Valeur de QProgresseBar
    Bonjour voilà j'ai deux petites questions. La première est :
    Comment puis-je récupérer la valeur courante d'une QProgressBar ?
    Ensuite comment je peux quitter une fenêtre quand j'atteins le maximum de ma QProgressBar.
    Si vous pouviez m'aider, je vous en serais très reconnaissant (comme toujours )
    Merci !!

  2. #2
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Salut,

    1. Traduit valeur en anglais, et regarde (à nouveau j'espère) la doc de QProgressBar

    2. Pour détecter le fait que la barre ait atteint le maximum, il faut que tu connectes un slot au signal valueChanged(int) de QProgressBar dans lequel tu vérifieras que la nouvelle valeur est égale (ou non) au maximum().

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Par défaut
    Oui pour la doc je l'ai lu quand même mais je n'arrive pas à renvoyer tout cela dans un int et je ne sais pas pourquoi mais j'ai surement fait une erreur...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    QProgressBar *barre = new QProgressBar;
    int valeur;
     
    valeur = barre->value;
    Ce code est sensé marcher??

    Et pour le reste. J'aimerais également quitter quand la barre a atteint le maximum donc que dois je mettre dans le slot, juste un slot quit()??
    Merci

  4. #4
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Citation Envoyé par razonback Voir le message
    Ce code est sensé marcher??
    Non, value est une fonction, pas une variable.


    Citation Envoyé par razonback Voir le message
    Et pour le reste. J'aimerais également quitter quand la barre a atteint le maximum donc que dois je mettre dans le slot, juste un slot quit()??
    Un appel à quit(), oui, mais après comparaison entre la nouvelle valeur et la valeur maximale que peut prendre la progress bar.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Par défaut
    Bon, je pense que j'ai saisi ce que tu m'as dit mais j'ai du mal a créer mes propres signaux...
    Je vous montre ce que j'ai fait et dites moi ce qui ne va pas s'il vous plait.
    Je sais que je montre car ma fonction chargement n'est pas mon slot etc... mais je ne vois (encore et toujours) pas comment faire...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
     
    void FenetreAccueil :: chargement(int nbre, QProgressBar * barre)
    {
    	if(slider>= barre->maximum())
    	{
    		emit complet();
    	}
    }
     
    void FenetreAccueil :: barreProgression()
    {
    	QVBoxLayout *group_layout = new QVBoxLayout;
    	QGroupBox *groupbox = new QGroupBox();
    	QProgressBar * barre = new QProgressBar();
    	QSlider *slider= new QSlider;
    	int valeur;
     
    	groupbox->setWindowTitle("Fenetre de chargement");
    	groupbox->setFixedSize(300,90);
    	groupbox->setGeometry(300,200,300,90);
    	groupbox->setTitle("Chargement");
    	groupbox->setFlat(1);
     
     
    	barre->setMaximum(100);
    	barre->setMinimum(0);
    	barre->setOrientation(Qt::Horizontal);
    	barre->setFixedSize(280, 20);
    	valeur = barre->value();
     
    	slider->setOrientation(Qt::Horizontal);
    	slider->setMaximum(101);
     
    	chargement(valeur, barre);
     
    	connect(nbre, SIGNAL(valueChanged(int)), barre, SLOT(setValue(int)));
     
    	connect(barre, SIGNAL(complet()), group_layout, SLOT(quit()));
     
    	group_layout->addWidget(barre);
    	group_layout->addWidget(slider);
    	groupbox->setLayout(group_layout);
    	groupbox->activateWindow();
    	groupbox->show();
     
    }
    Je pense aussi que je ne connecte pas les bons éléments pour le deuxième appel.

  6. #6
    Membre expérimenté Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Par défaut
    Salut,
    simplement, en quelques secondes avec la doc, on peut constater que la QProgressBar dispose de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void QProgressBar::valueChanged ( int value )   [signal]
    Il faut donc, que dans ton constructeur par exemple tu es :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    progress = new QProgressBar(this);
    ...
    connect(progress, SIGNAL(valueChanged(int), this, SLOT(ChangeValue(int)));
    ...
    Bien sûr dans le header tu as:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    private:
       QProgressBar *progress;
    ...
    Et tu aura un slot de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void MaClasse::ChangeValue(int v)
    {
        if(v==progress->maximum())
        //Tu fais ce que tu veux à ce moment là.
    ...
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récupérer la valeur du 2ème champ dans un DBLookUpListBox
    Par jakouz dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/07/2004, 16h45
  2. Recherche fonctions rendant la valeur
    Par Bertrand_Collet dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/11/2002, 12h05
  3. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28
  4. [XSLT]position d'un element de valeur specifique
    Par squat dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 25/07/2002, 16h42
  5. Réponses: 2
    Dernier message: 22/07/2002, 18h02

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