Capítulo 7. Ajustes

Tabla de contenidos

7.1. Creación de un Ajuste
7.2. Utilización de Ajustes de la Forma Fácil
7.3. Interioridades de un Ajuste

GTK tiene varios controles que pueden ser ajustados visualmente por el usuario usando el ratón o el teclado, tales como los controles de rango, descritos en la sección Controles de Rango. También hay unos cuantos controles que visualizan una parte ajustable de un área de datos mayor, tales como el control de texto y el control de vista.

Obviamente, una aplicación necesita ser capaz de reaccionar ante los cambios que el usuario realiza en los controles de rango. Una forma de hacer esto sería que cada control emitiera su propio tipo de señal cuando su ajuste cambiara y, o bien pasar el nuevo valor al manejador de señal, o requerir que se mire dentro de la estructura de datos del control para ver el nuevo valor. Pero puede que también se quiera conectar los ajustes de varios controles juntos, para que ajustando uno se ajusten los otros. El ejemplo más obvio de esto es conectar una barra de desplazamiento a una vista o a un área de texto desplazable. Si cada control tuviera su propia manera de manipular el valor del ajuste, entonces el programador tendría que escribir sus propios manejadores de señales para traducir entre la salida de la señal de un control y la entrada del método de ajuste de otro control.

GTK soluciona este problema mediante el objeto Adjustment, que no es un control sino una manera de que los controles almacenen y pasen la información de ajuste de una forma abstracta y flexible. El uso más obvio de Adjustment es almacenar los parámetros de configuración y los valores de los controles de rango, tales como las barras de desplazamiento y los controles de escala. Sin embargo, como la clase Adjustments deriva de Object, también tiene unas características especiales más alla de ser estructuras de datos normales. La más importante es que pueden emitir señales, como los controles, y estas señales no sólo pueden ser usadas para permitir a tus programas reaccionar a la entrada de usuario en controles ajustables, sino que pueden propagar valores de ajuste de una forma transparente entre controles ajustables.

Se verá como encajan los ajustes en todo el sistema cuando se vean los controles que los incorporan: Barras de Progreso, Vistas, Ventanas de Desplazamiento, y otros.

7.1. Creación de un Ajuste

Muchos de los controles que usan ajustes lo hacen automáticamente, pero más tarde se mostrarán casos en los que puede ser necesario crearlos. Es posible crear un ajuste usando:

  adjustment = gtk.Adjustment(value=0, lower=0, upper=0, step_incr=0, page_incr=0, page_size=0)

El argumento value es el valor inicial que se quiere dar al ajuste, y normalmente corresponde a la posición superior o la posición más a la izquierda de un control ajustable. El argumento lower especifica el valor más bajo que puede tomar el ajuste adjustment. El argumento step_incr especifica el incremento más pequeño de los dos incrementos por los que el usuario puede cambiar el valor, mientras que el argumento page_incr es el más grande de los dos. El argumento page_size normalmente se corresponde de alguna manera con el área visible de un control desplazable. El argumento upper se usa para representar la coordenada inferior o la más a la derecha de un control incluido en otro control desplazable. Por tanto no es siempre el número más grande que el valor puede tomar, ya que el page_size de tales controles normalmente es distinto de cero.