PyQt - Widget QScrollBar

Un contrôle de barre de défilement permet à l'utilisateur d'accéder aux parties du document qui se trouvent en dehors de la zone visible. Il fournit un indicateur visuel de la position actuelle. Il dispose d'un curseur par lequel une valeur entre une plage prédéfinie est définie de manière analogue. Cette valeur est généralement corrélée pour amener une donnée masquée dans la fenêtre.

Le contrôle de la barre de défilement a quatre contrôles -

Un curseur

Deux flèches de défilement

Contrôle de page

Les signaux suivants de la classe QScrollBar sont fréquemment utilisés -

Sr.No. Méthodes et description
1

valueChanged()

Lorsque la valeur de la barre de défilement change

2

sliderMoved()

Lorsque l'utilisateur fait glisser le curseur

Exemple

Dans l'exemple suivant, trois barres de défilement sont placées pour contrôler les valeurs RVB de la couleur de police pour le texte affiché dans une étiquette. Le code complet est le suivant -

import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *

class Example(QWidget):

   def __init__(self):
      super(Example, self).__init__()
      self.initUI()
		
   def initUI(self):
      vbox = QVBoxLayout(self)
      vbox.addLayout(box)
      self.setLayout(vbox)
      hbox = QHBoxLayout()
      self.l1 = QLabel("Drag scrollbar sliders to change color")
      self.l1.setFont(QFont("Arial",16))
		
      hbox.addWidget(self.l1)
      self.s1 = QScrollBar()
      self.s1.setMaximum(255)
		
      self.s1.sliderMoved.connect(self.sliderval)
      self.s2 = QScrollBar()
      self.s2.setMaximum(255)
      self.s2.sliderMoved.connect(self.sliderval)
		
      self.s3 = QScrollBar()
      self.s3.setMaximum(255)
      self.s3.sliderMoved.connect(self.sliderval)
		
      hbox.addWidget(self.s1)
      hbox.addWidget(self.s2)
      hbox.addWidget(self.s3)
		
      self.setGeometry(300, 300, 300, 200)
      self.setWindowTitle('QSplitter demo')
      self.show()
		
   def sliderval(self):
      print self.s1.value(),self.s2.value(), self.s3.value()
      palette = QPalette()
      c = QColor(self.s1.value(),self.s2.value(), self.s3.value(),255)
      palette.setColor(QPalette.Foreground,c)
      self.l1.setPalette(palette)
		
def main():
   app = QApplication(sys.argv)
   ex = Example()
   sys.exit(app.exec_())
	
if __name__ == '__main__':
   main()

Le code ci-dessus produit la sortie suivante -