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 -

QSlider.NoTicks Pas de graduation
QSlider.TicksBothSides Coche des deux côtés
QSlider.TicksAbove Coche au-dessus du curseur
QSlider.TicksBelow Coche sous le curseur
QSlider.TicksLeft Coche à gauche du curseur
QSlider.TicksRight Coche à droite du curseur

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.