PyGTK - Clase de barra de desplazamiento
Esta clase es una clase base abstracta para los widgets gtk.Hscrollbar y gtk.Vscrollbar. Ambos están asociados con un objeto de ajuste. La posición del pulgar de la barra de desplazamiento se controla mediante ajustes de desplazamiento. Los atributos del objeto de ajuste se utilizan de la siguiente manera:
inferior | El valor mínimo de la región de desplazamiento |
Superior | El valor máximo de la región de desplazamiento |
valor | Representa la posición de la barra de desplazamiento, que debe estar entre la parte inferior y la superior. |
tamaño de página | Representa el tamaño del área desplazable visible |
step_increment | Distancia para desplazarse cuando se hace clic en las pequeñas flechas paso a paso |
page_increment | Distancia para desplazarse cuando el Page Up o Page Down teclas presionadas |
El siguiente programa muestra un widget HScale y HScrollbar colocado en un VBox agregado a la ventana de nivel superior. Cada uno de ellos está asociado a un objeto de ajuste.
adj1 = gtk.Adjustment(0, 0, 101, 0.1, 1, 1)
self.adj2 = gtk.Adjustment(10,0,101,5,1,1)
Un widget gtk.HScale es un control deslizante adjunto con adj1. Su política de actualización, el número y la posición del valor del dibujo se configuran de la siguiente manera:
scale1 = gtk.HScale(adj1)
scale1.set_update_policy(gtk.UPDATE_CONTINUOUS)
scale1.set_digits(1)
scale1.set_value_pos(gtk.POS_TOP)
scale1.set_draw_value(True)
gtk.HScrollbar proporciona una barra de desplazamiento horizontal. Está asociado con el objeto adj2. Su política de actualización también está configurada como CONTINUA.
self.bar1 = gtk.HScrollbar(self.adj2)
self.bar1.set_update_policy(gtk.UPDATE_CONTINUOUS)
Para mostrar el valor instantáneo de la barra de desplazamiento, la señal de 'valor cambiado' de the adjustment object — adj2 está conectado a la función de devolución de llamada on_scrolled(). La función recupera la propiedad de valor del objeto de ajuste y la muestra en una etiqueta debajo de la barra de desplazamiento.
self.adj2.connect("value_changed", self.on_scrolled)
def on_scrolled(self, widget, data = None):
self.lbl2.set_text("HScrollbar value: "+str(int(self.adj2.value)))
Ejemplo
Observe el siguiente código:
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Range widgets Demo")
self.set_default_size(250, 200)
self.set_position(gtk.WIN_POS_CENTER)
adj1 = gtk.Adjustment(0.0, 0.0, 101.0, 0.1, 1.0, 1.0)
self.adj2 = gtk.Adjustment(10,0,101,5,1,1)
scale1 = gtk.HScale(adj1)
scale1.set_update_policy(gtk.UPDATE_CONTINUOUS)
scale1.set_digits(1)
scale1.set_value_pos(gtk.POS_TOP)
scale1.set_draw_value(True)
vb = gtk.VBox()
vb.add(scale1)
lbl1 = gtk.Label("HScale")
vb.add(lbl1)
self.bar1 = gtk.HScrollbar(self.adj2)
self.bar1.set_update_policy(gtk.UPDATE_CONTINUOUS)
vb.add(self.bar1)
self.lbl2 = gtk.Label("HScrollbar value: ")
vb.add(self.lbl2)
self.adj2.connect("value_changed", self.on_scrolled)
self.add(vb)
self.connect("destroy", gtk.main_quit)
self.show_all()
def on_scrolled(self, widget, data=None):
self.lbl2.set_text("HScrollbar value: "+str(int(self.adj2.value)))
if __name__ == '__main__':
PyApp()
gtk.main()
El código anterior generará la siguiente salida: