PyQt - Widget QScrollBar
Un controllo della barra di scorrimento consente all'utente di accedere a parti del documento che si trovano al di fuori dell'area visualizzabile. Fornisce un indicatore visivo della posizione corrente. Dispone di uno slider mediante il quale viene impostato un valore compreso tra un intervallo preimpostato in modo analogo. Questo valore è solitamente correlato per portare un dato nascosto all'interno del viewport.
Il controllo della barra di scorrimento ha quattro controlli:
Un cursore Due frecce di scorrimento Controllo della pagina |
I seguenti segnali della classe QScrollBar vengono spesso utilizzati:
Sr.No. | Metodi e descrizione |
---|---|
1 | valueChanged() Quando il valore della barra di scorrimento cambia |
2 | sliderMoved() Quando l'utente trascina il cursore |
Esempio
Nell'esempio seguente, vengono posizionate tre barre di scorrimento per controllare i valori RGB del colore del carattere per il testo visualizzato in un'etichetta. Il codice completo è il seguente:
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()
Il codice precedente produce il seguente output: