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. Puedes querer 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. Crear 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 suelen usar los controles de escala horizontales.) Ya que esencialmente funcionan de la misma manera, no hay necesidad de tratarlos por separado aqui. 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 o un ajuste que ya haya sido creado con gtk.Adjustment() , o nada, en cuyo caso se crea un Adjustment anónimo con todos sus valores puestos a 0.0 (lo cual no es muy útil en este caso). Para evitarte confusiones, probablemente quieras crear tu ajuste con un valor de page_size de 0.0 para que su valor upper realmente corresponda con el valor más alto que el usuario puede seleccionar. (Si ya estás realmente confundido, lee la sección sobre Ajustes otra vez para una explicación de lo que hacen exactamente los ajustes y como 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 puedes cambiarlo con este método:

  scale.set_draw_value(draw_value)

Como habrás imaginado, draw_value 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). Puedes cambiar esto con:

  scale.set_digits(digits)

donde digits es el número de posiciones decimales que quieres. Puedes poner el número que quieras, pero no se veran más de 13 posiciones en la pantalla.

Finalmente, el valor se puede mostrar en diferentes posiciones relativas al canal:

  scale.set_value_pos(pos)

El argumento pos 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 abajo de un control de escala horizontal), entonces seguirá al deslizador arriba y abajo del canal.