PyQt - Widget QScrollBar
Un control de barra de desplazamiento permite al usuario acceder a partes del documento que están fuera del área visible. Proporciona un indicador visual de la posición actual. Tiene un control deslizante mediante el cual se establece un valor entre un rango preestablecido de manera análoga. Este valor suele estar correlacionado para traer datos ocultos dentro de la ventana gráfica.
El control de la barra de desplazamiento tiene cuatro controles:
Un deslizador Dos flechas de desplazamiento Control de página |
Las siguientes señales de la clase QScrollBar se utilizan con frecuencia:
No Señor. | Métodos y descripción |
---|---|
1 |
valueChanged() Cuando cambia el valor de la barra de desplazamiento |
2 |
sliderMoved() Cuando el usuario arrastra el control deslizante |
Ejemplo
En el siguiente ejemplo, se colocan tres barras de desplazamiento para controlar los valores RGB del color de la fuente para el texto que se muestra en una etiqueta. El código completo es el siguiente:
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()
El código anterior produce la siguiente salida: