Qt 4 pb QSlider
Fermé
hey
-
22 déc. 2010 à 16:12
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 23 déc. 2010 à 12:42
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 23 déc. 2010 à 12:42
2 réponses
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
23 déc. 2010 à 01:08
23 déc. 2010 à 01:08
QtSlider fonctionne très bien. Il suffit simplement de bien l'initialiser (méthodes setMinimum & set Maximum).
Si l'objet est initialisé avec '-100' et '+100', il est tout à fait normal que le '0' se trouve exactement entre les deux.
Si tu veux modifier cet état de fait, tu as deux solutions:
- soit modifier les min et/ou max,
- soit donner la valeur avec un offset.
Bonne continuation.
Si l'objet est initialisé avec '-100' et '+100', il est tout à fait normal que le '0' se trouve exactement entre les deux.
Si tu veux modifier cet état de fait, tu as deux solutions:
- soit modifier les min et/ou max,
- soit donner la valeur avec un offset.
Bonne continuation.
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
23 déc. 2010 à 12:42
23 déc. 2010 à 12:42
Exemple d'un QSpinBox qui modifie un QSlider.
Dans la déclaration de classe:
Pour ajouter un offset, il faut, pour cet exemple, passer par une méthode intermédiaire afin d'ajouter systématiquement un offset, par exemple:
Dans la déclaration de classe:
Dans la déclaration de classe:
QSlider* m_slider; QSpinBox* m_spinbox;Dans le constructeur:
m_slider = new QSlider;
m_slider->setRange(-100, +100);
m_spinbox = new QSpinBox;
m_spinbox->setRange(-200, +200);
m_spinbox->setSingleStep(+20);
// Exemple pour la mise en forme
QHBoxLayout* hLayout = new QHBoxLayout;
hLayout->addWidget(m_slider);
hLayout->addWidget(m_spinbox);
connect(m_spinbox, SIGNAL(valueChanged(int)),
m_slider , SLOT(setValue(int)) );
setLayout(hLayout);
Tu verras que QSlider suit très bien la valeur de QSpinBox et que les valeurs en dehors de sa déclaration ne le perturbe pas.
Pour ajouter un offset, il faut, pour cet exemple, passer par une méthode intermédiaire afin d'ajouter systématiquement un offset, par exemple:
Dans la déclaration de classe:
QSlider* m_slider; QSpinBox* m_spinbox; void ajouteOffset(int value);Dans le constructeur:
m_slider = new QSlider;
m_slider->setRange(-100, +100);
m_spinbox = new QSpinBox;
m_spinbox->setRange(-200, +200);
m_spinbox->setSingleStep(+20);
// Exemple pour la mise en forme
QHBoxLayout* hLayout = new QHBoxLayout;
hLayout->addWidget(m_slider);
hLayout->addWidget(m_spinbox);
connect(m_spinbox, SIGNAL(valueChanged(int)),
this , SLOT(ajouteOffset(int)) );
setLayout(hLayout);
Dans la méthode:TaClasse::ajouteOffset(int value)
{
m_slider->setValue(value+100);
}Bonne continuation.
23 déc. 2010 à 10:03