8.2. Controles de Escala

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.

8.2.1. Creación de un Control de Escala

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

8.2.2. Métodos y Señales (bueno, al menos métodos)

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.