Informatica Grafica
C A P I T U L O 20 El Window Manager y el Window Info

Un gestor de ventanas (window manager) es una aplicación especial que se encarga del control de la posición de una toplevel, y proporciona la forma de redimensionar las ventanas, abrirlas y cerrarlas, y colocar su borde y título. El comando wm se utiliza en Tcl para interactuar con el window manager.

Si fuese necesario conocer algún detalle acerca de los widgets, el comando winfo devuelve toda una serie de informaciones acerca de las ventanas (no sólo de las toplevel)


El comando wm

El comando wm soporta una serie de operaciones que interactúan con el window manager. La sintaxis general de este comando es la siguiente:

wm operacion win ?args?

En todos los casos el argumento win, debe ser una ventana toplevel.

Las operaciones que puede realizar el comando wm, pueden agruparse en cuatro categorías:


Tamaño, posición y decoración

Quizás la operación más comúnmente usada con el comando wm sea wm title. Esta operación permite colocar un título a una toplevel. El título aparece en la barra superior de la ventana y puede ser modificado durante la ejecución del programa tantas veces como se desee.

wm title . "Prueba v1.0"

Otra operación muy utilizada es wm geometry. Esta operación se emplea para ajustar la posición de una ventana en pantalla.

wm geometry 300x200+10+10

En este ejemplo, se ha definido una toplevel de 300x200 unidades, situada en la posicón (10,10) de la pantalla.

Si el tamaño de la toplevel ya había sido definido, puede indicarse sólo la posición:

wm geometry +10+10

La tabla 20-1 resume las operaciones de tamaño, posicionamiento y decoración del comando wm.

Tabla 20-1. Operaciones de tamaño, posicionamiento y decoración.

wm apsect win ?a b c d?

Obliga a que el ratio del ancho y alto esté entre a/b y c/d. El ratio es ancho/alto.

wm geometry win ?WxH+X+Y?

Devuelve o define la geometría de una ventana.

wm grid win ?w h dx dy?

Devuelve o define el tamaño del grid. w y h son el tamaño base, en unidades de grid. dx y dy son el tamaño, en pixels, de una unidad de grid

wm group win ?lider?

Devuelve o define el lider del grupo.

wm maxsize win ?ancho alto?

Impone el máximo tamaño de win.

wm minsize win ?ancho alto?

Impone el mínimo tamaño de win.

wm title win ?titulo?

Devuelve o define el título de una ventana.


Iconos

Cuando se cierra una ventana, el window manager la elimina de la pantalla y la reemplaza por un icono. Se puede abrir y cerrar la ventana mediante las operaciones deiconify e iconify respectivamente. Es posible eliminar la ventana de pantalla sin iconificarla mediante la operación withdraw. La operación state devuelve el estado actual, que puede ser normal, iconified o withdraw. Si se ha utilizado la opción withdraw, la ventana puede ser restaurada mediante la operación deiconify.

También es posible colocar los atributos del icono con las operaciones iconname, iconposition, iconbitmap e iconmask.

Bajo Windows, estas últimas operaciones puede que no funcionen debido a que, a diferencia de UNIX, Windows siempre colocará los iconos en la barra de tareas, no existiendo la posibilidad de colocarlos en cualquier punto de la pantalla.

La siguiente tabla resume las operaciones para iconos del comando wm.

Tabla 20-1. Operaciones para iconos.

wm deiconify win

Abre la ventana win.

wm iconbitmap win ?bitmap?

Devuelve o define el bitmap para el icono.

wm iconify win

Cierra la ventana win.

wm iconmask win ?mask?

Devuelve o define la máscara para el icono.

wm iconname win ?nombre?

Devuelve o da el nombre al icono.

wm iconposition win ?x y?

Devuelve o da la posición al icono.

wm state win

Devuelve normal, iconified o withdraw.

wm withdraw win

Elimina la ventana de la pantalla.


De sesión

La operación más habitual entre las tres existentes en este apartado es wm protocol. Esta operación permite capturar el evento de cierre de una ventana. Es útil cuando se desea capturar este evento para realizar una salida limpia de la aplicación, aunque el usuario haya utilizado el botón marcado con una x en la parte superior de la ventana.

wm protocol WM_DELETE_WINDOW Salir

Cuando se captura el evento de destrucción de la ventana, se jecutará el comando Salir.


Miscelánea

La operación wm frame devuelve el ID de la nueva ventana padre, si es que existe una nueva ventana padre, si no devuelve el id de ella misma.

La operación wm overrideredirect hace que desaparezcan el título y el borde de la ventana.

wm group es utilizada para agrupar un conjunto de ventanas que pueden ser abiertas y cerradas al mismo tiempo.

wm transient informa al window manager que es una ventana temporal y que no es necesario decorar con borde o barra de título. Esto es usado, por ejemplo, en menús.

La siguiente tabla resume las operaciones del tipo miscelánea del comando wm.

Tabla 20-3. Operaciones de tipo miscelánea.

wm focusmodel win ?cual?

Coloca el modelo de foco. Puede ser active o passive.

wm frame win

Devuelve el ID de la ventana nueva ventana psdre. Si no ha cambiado devuelve su propio ID.

wm group win ?jefe?

Asigna win al grupo encabezado por jefe.

wm overrideredirect win ?bool?

Elimina toda decoración en la ventana.

wm title win ?titulo?

Devuelve o mark la ventana como transitoria.


El comando winfo

Al igual que en caso del comando wm, las operaciones del comando winfo pueden dividirse en varias categorías:

Al contrario que con el comando wm, el comando winfo no sólo actúa con toplevel, sino también con cualquier otro tipo de widget, que aquí llamaremos ventana.


Relaciones familiares entre widgets

Los widgets Tk se ordenan mediante una herencia y puede usarse el comando winfo para recorrer la estructura de esta herencia.

La tabla 20-4 resume las operaciones de herencia.

Tabla 20-4. Realciones familiares entre widgets con el comando winfo.

winfo children win

Devuelve la lista de widgets hijos de win.

winfo class win

Devuelve clase fuente de win.

winfo exists win

Devuelve 1 si win existe.

winfo ismapped win

Devuelve 1 si win está en pantalla.

winfo manager win

Devuelve el geometry manager: pack, place, canvas, text.

winfo parent win

Devuelve el widget padre de win.


Tamaño

Las operaciones winfo width y winfo height devuelven el ancho y el alto de una ventana. Inicialmente una ventana se crea con un ancho y un alto de 1, por lo que es necesario utilizar tkwait visibility, para esperar a que la ventana sea mapeada en pantalla, y poder utilizar winfo para conocer su ancho y su alto.

La operación winfo geometry devuelve el tamaño y la posición de la ventana en el formato estándard: WxH+X+Y. En este caso X e Y son relativos a la ventana padre, o relativos a la ventana raíz en el caso de la ventana principal.

las operaciones winfo screenwidth y winfo screenheight devuelven, en pixels, el tamañode la pantalla. winfo screenmmwidth y winfo screenmmheight devuelven la misma información en milímetros.

Es posible realizar conversiones entre pixels y distancias en la pantalla con las operaciones winfo pixels y winfo fpixels.

La tabla 20-5 resume las operaciones de tamaño del comando winfo.

Tabla 20-5. Operaciones de tamaño del comando winfo.

winfo fpixels win num

Convierte num, en unidades de pantalla, a pixels. Devuelve un flotante.

winfo geometry win

Devuelve la geometría de win en pixels y relativo a la ventana padre.

winfo height win

Devuelve el alto de win en pixels.

winfo pixels win num

Convierte num en un número entero de pixels.

winfo reqheight win

Devuelve el alto de win en pixels.

winfo reqwidth win

Devuelve el ancho de win en pixels.

winfo screenheight win

Devuelve el alto de la pantalla en pixels.

winfo screenmmheight win

Devuelve el alto de la pantalla en mm.

winfo screenmmwidth win

Devuelve el ancho de la pantalla en mm.

winfo screenwidth win

Devuelve el ancho de la pantalla en pixels.

winfo width win

Devuelve el ancho de win en pixels.


Posición

Las operaciones winfo x y winfo y devuelven la posición de una ventana relativa a su widget padre. En el caso perticular de la ventana padre, esta será su localización en la pantalla.

Las operaciones winfo rootx y winfo rooty devuelven la posición de un widget en la pantalla, siempre y cuando no sea una toplevel.

winfo containing devuelve el path de la ventana que contiene un punto de la pantalla.

La operación winfo toplevel devuelve el path de una toplevel que contiene un widget. Si la ventana es una toplevel, devuelve su propio path.

la operación winfo screen devuelve el identificador de la ventana para la pantalla.

La tabla 20-6 resume las operaciones de posición con el comando winfo.

Tabla 20-6. Operaciones de posición con el comando winfo.

winfo containing win x y

Devuelve el path de la ventana en x e y.

winfo rootx win

Devuelve la posición X de win.

winfo rooty win

Devuelve la posición Y de win.

winfo screen win

Devuelve el identificador de la pantalla de win.

winfo toplevel win

Devuelve el identificador de la toplevel que contiene a win.

winfo x win

Devuelve la posición X de win en su widget padre.

winfo y win

Devuelve la posición Y de win en su widget padre,.

IDs

Cada widget tiene un ID. La operación winfo id devuelve este identificador. La operación winfo pathname devuelve el path del widget cuyo ID se ha pasado como parámetro.

La tabla 20-7 resume estas dos operaciones.

Tabla 20-7. Operaciones de IDs con el comando winfo.

winfo id win

Devuelve el ID de win.

winfo pathname id

Devuelve el path del widget cuyo ID es id, o devueleve null..


Mapas de colores

La operación winfo depth devuelve el número de bits usados para representar el color en cada pixel, winfo visualsavailable devuelve una lista de las clases visuales y profundidad de color disponibles.

La operación winfo visual devuelve la clase visual de una ventana, y la operación winfo screenvisual, devuelve la clase visual, por defecto, de la pantalla.

la operación winfo rgb convierte un nombre de color o valor a sus componentes rojo, verde y azul. Devuelve tres valores decimales.

La siguiente tabla resume estas operaciones:

Tabla 20-8. Operaciones de mapas de color con el comando winfo.

winfo cells win

Devuelve el número de entradas de los mapas de colores en win. Usualmente serán 256 para 8 bits de profundidad de color.

winfo depth win

Devuelve el número de bits por pixel para win.

winfo rgb color

Devuelve los componentes rgb de color.

winfo screencells win

Devuelve el número de entradas de mapas de colores usadas en la clase visual por defecto de la pantalla.

winfo screendepth win

Devuelve el número de bits por pixel en la clase visual por defecto de la pantalla

winfo visual win

Devuelve las clases visuales de win.

winfo visualsavailable win

Devuelve la lista de parejas de tipo visuales y profundidad de color disponibles en las clases visuales.


Previous Page Next Page


© 1995-98, etsimo WWW team
Última modificación: 19 de Agosto de 1998 - 17:49:22