Los controles Scale (Escala) se usan para
permitir al usuario seleccionar y manipular visualmente un valor dentro de
un rango específico. Se puede usar un control de escala, por ejemplo,
para ajustar el nivel de zoom en una previsualización de una imagen, o para
controlar el brillo de un color, o para especificar el número de minutos
de inactividad antes de que el protector de pantalla se active.
Al igual que con las barras de desplazamiento, hay controles separados para los controles de escala horizontales y verticales. (La mayoría de los programadres parecen usar los controles de escala horizontales.) Ya que esencialmente funcionan de la misma manera, no hay necesidad de tratarlos por separado aquí. Los siguientes métodos crean controles de escala verticales y horizontales, respectivamente:
vscale = gtk.VScale(adjustment=None) hscale = gtk.HScale(adjustment=None)
El argumento adjustment puede ser bien un
ajuste que ya haya sido creado con gtk.Adjustment(), o bien
nada, en cuyo caso se crea un
Adjustment anónimo con todos sus valores puestos
a 0.0 (lo cual no es demasiado útil). Para evitar confusiones,
probablemente sea mejor crear un ajuste con un valor
page_size de 0.0 para que su valor upper
realmente corresponda con el valor más alto que el usuario puede seleccionar.
(Si esto resulta confuso, la sección sobre
Ajustes da una explicación detallada
sobre qué hacen exactamente los ajustes y cómo crearlos y manipularlos.)
Los controles de escala pueden visualizar su valor como un número al lado del canal. El comportamiento por defecto es mostrar el valor, pero esto se puede cambiar con el método:
scale.set_draw_value(draw_value)
Como habrás imaginado, draw_value (representar
valor) es o TRUE o FALSE, con consecuencias predecibles
para cualquiera de los dos.
El valor que muestra un control de escala se redondea a un
valor decimal por defecto, tal y como se hace con el campo valor en su Adjustment (Ajuste).
Se puede cambiar esto con:
scale.set_digits(digits)
donde digits (dígitos) es el número de posiciones
decimales que se representarán. Se puede poner el número que se desee, pero no
se representarán en pantalla más de 13 dígitos decimales.
Finalmente, el valor se puede mostrar en diferentes posiciones relativas al canal:
scale.set_value_pos(pos)
El argumento pos (posición) puede tomar uno de los
siguientes valores:
POS_LEFT POS_RIGHT POS_TOP POS_BOTTOM
Si pones el valor en un "lado" del canal (por ejemplo, en la parte de arriba o de abajo de un control de escala horizontal), entonces seguirá al deslizador en su desplazamiento hacia arriba y hacia abajo del canal.