PDA

Afficher la version complète : [Réglé] Curieux: slider et progressBar quand je Qt



moniroje
07/07/2014, 19h04
Oui, j'ai réussi à faire bouger un progressBar selon le déplacement que j'apporte sur un slider
mais...
le slider à peine bougé, hop! la progressBar est à 98% !!!
et si je continue à avancer mon curseur, la barre de progression reste bloquée à 98 %
Mon exo fonctionne mais ce n'est pas joli: j'aurais aimé que le slider déplacé de 30% => un progressBar à 30% et slider à fond à droite, la barre soit pleine!!
Je vous passe la partie de .cpp concernée:


m_ProgressBar = new QProgressBar( this);
m_ProgressBar -> setGeometry(40,200,410,25);

m_slider = new QSlider(Qt::Horizontal, this);
m_slider -> setRange(20,410);
m_slider->setGeometry(100, 160, 100, 20);

QObject::connect(m_slider, SIGNAL(valueChanged(int)), m_ProgressBar, SLOT(setValue(int)));

linux5623
10/07/2014, 17h45
Salut,

Il faut que les deux widgets est les mêmes limites minimum et maximum.

Si tu veux faire un truc qui ressemble à ça ?

2715

Ton code doit ressemblé à ça !


ui->progressBar->setRange( 100, 200 );
ui->horizontalSlider->setRange( 100, 200 );

ui->progressBar->setValue(150);
ui->horizontalSlider->setValue(150);

connect( ui->horizontalSlider , SIGNAL(valueChanged(int)) , ui->progressBar , SLOT(setValue(int)) );

moniroje
11/07/2014, 16h36
Merci linux 5623 !!! ça marche...
Tiens, trop fier de te monter mon oeuvre!:
2716
Bon, vais continuer;
j'ai mis deux sliders, un pour commander la largeur de toute la fenêtre, l'autre pour commander sa hauteur; histoire de créer mes propres slots; l'ennui, c'est que les deux marchent mais commandent tous les deux la largeur de la fenêtre!!! zut!
A ce sujet, le tuto me conseille d'utiliser les méthodes width() et height() ;
j'ai essayé dans tous les sens width et height;
vais demander au forum du site du zéro (ils savent pas https://www.alionet.org/images/smilies/32%20%281%29.png que je demande aussi à vous, Alionet; comme ça, ils ne se doutent pas que je suis si peu doué)
A + !

linux5623
11/07/2014, 16h53
J'ai pas accès au fichier !!

Si les deux QSlider font la même chose c'est qu'il y a un problème avec les deux fonctions connect().

jtro
11/07/2014, 23h10
fichier joint non valide,moni

moniroje
12/07/2014, 07h16
En effet linux 5623; concernant mes slots créés:
dans le constructeur de MaFenetre:


m_largeur = new QSlider(Qt::Horizontal, this);
m_largeur -> setRange(20,610);
m_largeur -> setGeometry(10,20,415,20);

m_hauteur = new QSlider(this); // il sera donc vertical; c'est par défaut
m_hauteur -> setRange(20, 410);
m_hauteur -> setGeometry(15,65,20,200);

QObject::connect(m_largeur , SIGNAL(valueChanged(int)), this,
SLOT(changerLargeur(int)));
QObject::connect(m_hauteur , SIGNAL(valueChanged(int)), this,
SLOT(changerHauteur(int)));

alors que mon fichier header est:

#ifndef MAFENETRE_H
#define MAFENETRE_H
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QLCDNumber>
#include <QProgressBar>
#include <QSlider>

class MaFenetre : public QWidget
{
Q_OBJECT

public slots:
void changerLargeur(int largeur);
void changerHauteur(int hauteur);

public:
MaFenetre();


private:
QPushButton *m_quitter;
QPushButton *m_reset ;
QProgressBar *m_ProgressBar ;
QSlider *m_slider ;
QSlider *m_largeur;
QSlider *m_hauteur;
};

#endif // MAFENETRE_H


hiiii, jtro!!! Tiens, en effet, ça ne marche plus, mon image; bon, elle était en .png, je la mets en .jpg:
2717
Bon, là, on la voit; j'envoie!!
Chouette!! j'ai deux spectateurs de mon job :D