PyQt - Widget et signal QSlider
QSliderl'objet de classe présente à l'utilisateur une rainure sur laquelle une poignée peut être déplacée. C'est un widget classique pour contrôler une valeur bornée. La position de la poignée sur la rainure équivaut à un entier entre les bornes inférieure et supérieure de la commande.
Un contrôle de curseur peut être affiché de manière horizontale ou verticale en mentionnant l'orientation dans le constructeur.
self.sp = QSlider(Qt.Horizontal)
self.sp = QSlider(Qt.Vertical)
Le tableau suivant répertorie certaines des méthodes fréquemment utilisées de la classe QSlider -
Vous trouverez ci-dessous les méthodes de QSlider les plus couramment utilisées.
Sr.No. | Méthodes et description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | setMinimum() Définit la limite inférieure du curseur |
||||||||||||
2 | setMaximum() Définit la limite supérieure du curseur |
||||||||||||
3 | setSingleStep() Définit le pas d'incrémentation / décrémentation |
||||||||||||
4 | setValue() Définit la valeur du contrôle par programme |
||||||||||||
5 | value() Renvoie la valeur actuelle |
||||||||||||
6 | setTickInterval() Met le nombre de ticks sur la rainure |
||||||||||||
sept | setTickPosition() Place les graduations sur la rainure. Les valeurs sont -
|
Signaux QSlider
Sr.No. | Méthodes et description |
---|---|
1 | valueChanged() Lorsque la valeur du curseur a changé |
2 | sliderPressed() Lorsque l'utilisateur commence à faire glisser le curseur |
3 | sliderMoved() Lorsque l'utilisateur fait glisser le curseur |
4 | sliderReleased() Lorsque l'utilisateur relâche le curseur |
Le signal valueChanged () est celui qui est le plus fréquemment utilisé.
Exemple
L'exemple suivant illustre la fonctionnalité ci-dessus. Une étiquette et un curseur horizontal sont placés dans une disposition verticale. Le signal valueChanged () du curseur est connecté à la méthode valuechange ().
self.sl.valueChanged.connect(self.valuechange)
La fonction de slot valuechange () lit la valeur actuelle du curseur et l'utilise comme taille de police pour la légende de l'étiquette.
size = self.sl.value()
self.l1.setFont(QFont("Arial",size))
Le code complet est le suivant -
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class sliderdemo(QWidget):
def __init__(self, parent = None):
super(sliderdemo, self).__init__(parent)
layout = QVBoxLayout()
self.l1 = QLabel("Hello")
self.l1.setAlignment(Qt.AlignCenter)
layout.addWidget(self.l1)
self.sl = QSlider(Qt.Horizontal)
self.sl.setMinimum(10)
self.sl.setMaximum(30)
self.sl.setValue(20)
self.sl.setTickPosition(QSlider.TicksBelow)
self.sl.setTickInterval(5)
layout.addWidget(self.sl)
self.sl.valueChanged.connect(self.valuechange)
self.setLayout(layout)
self.setWindowTitle("SpinBox demo")
def valuechange(self):
size = self.sl.value()
self.l1.setFont(QFont("Arial",size))
def main():
app = QApplication(sys.argv)
ex = sliderdemo()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Le code ci-dessus produit la sortie suivante -
La taille de police de l'étiquette change lorsque la poignée du curseur est déplacée sur la poignée.