PyQt - Widget QScrollBar

Um controle de barra de rolagem permite que o usuário acesse partes do documento que estão fora da área visível. Ele fornece um indicador visual da posição atual. Ele tem um controle deslizante pelo qual um valor entre uma faixa predefinida é definido de maneira análoga. Esse valor geralmente é correlacionado para trazer dados ocultos para dentro da janela de visualização.

O controle da barra de rolagem tem quatro controles -

Um controle deslizante

Duas setas de rolagem

Controle de página

Os seguintes sinais da classe QScrollBar são frequentemente usados ​​-

Sr. Não. Métodos e Descrição
1

valueChanged()

Quando o valor da barra de rolagem muda

2

sliderMoved()

Quando o usuário arrasta o controle deslizante

Exemplo

No exemplo a seguir, três barras de rolagem são colocadas para controlar os valores RGB da cor da fonte para o texto exibido em um rótulo. O código completo é o seguinte -

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()

O código acima produz a seguinte saída -