Python/Interfaz gráfica con Tkinter/Parámetros
Opciones
editarMuchos de los widgets que utilizamos y vimos hasta ahora cuentan con opciones, con el fin de no repetir la descripción de cada uno de ellos serán vistos uno a uno en esta sección.
NOTA:
Para más información sobre los colores visite la sección "Colores" que se ve en "Gestion del diseño"
anchor
Tkinter nos permite controlar de que forma se va a posicionar un texto o imagen con respecto al widget en el que se encuentra. La opción por defecto es 'CENTER' que muestra el elemento centrado.
NW | N | NE |
W | CENTER | E |
SW | S | SE |
- Posiciona el texto/imagen en la esquina superior izquierda del widget
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, width=20, height=10, anchor="nw")
- Posiciona el texto/imagen en la parte superior del widget
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, width=20, height=10, anchor="n")
- Posiciona el texto/imagen en la esquina superior derecha del widget
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, width=20, height=10, anchor="ne")
- Posiciona el texto/imagen en la parte izquierda del widget
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, width=20, height=10, anchor="w")
- Posiciona el texto/imagen en el centro del widget
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, width=20, height=10, anchor="center")
- Posiciona el texto/imagen en la parte derecha del widget
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, width=20, height=10, anchor="e")
- Posiciona el texto/imagen en la esquina inferior izquierda del widget
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, width=20, height=10, anchor="sw")
- Posiciona el texto/imagen en la parte inferior del widget
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, width=20, height=10, anchor="s")
- Posiciona el texto/imagen en la esquina inferior derecha del widget
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, width=20, height=10, anchor="se")
activebackground
Con esta opción podemos indicar que color de fondo se deberá utilizar cuando el cursor del mouse se posicione sobre el widget, Para algunos elementos y en algunas plataformas solo sera visible cuando se hace click sobre el.
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, activebackground="#F50743")
activeforeground
Al igual que pasa con 'activebackground' con esta otra opción podemos especificar el color en este caso de la fuente del widget cuando se posiciona el cursor sobre este.
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, activeforeground="#F50743")
background (bg)
Sirve para indicar el color de fondo que tendrá en area del widget cuando este se encuentre inactivo. También se puede utilizar su forma abreviada 'bg' como podemos ver en el segundo ejemplo.
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, background="#38EB5C")
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, bg="#38EB5C")
bitmap
borderwidth (bd)
Nos da la posibilidad de especificar el ancho del borde del elemento con el que estemos trabajando, Tkinter nos permite especificar el valor en varias unidades de medida (centímetros, pulgadas, milímetros y puntos) las cuales serán vistas más adelante en la guia. Si no se utiliza junto con la opción 'relief' visualmente es similar a utilizar las opciones 'height' y 'width' como se puede observar en el ejemplo. El valor por defecto es de 2 píxeles.
etiqueta = Tkinter.Label(root, text="Hola Mundo!!!", borderwidth=15)
etiqueta = Tkinter.Label(root, text="Hola Mundo!!!", bd=15)
command
Como ya lo mencionamos cuando vimos al widget Button este permite indicar la funcion o metodo que queremos que se llame cuando se presiona por ejemplo un botón, pero esta opción también funciona con otros widgets de Tkinter cumpliendo la misma función.
def funcion(): print "Excelente" boton = Tkinter.Button(root, text="Que te parece la guia?", command=funcion)
cursor
Nos da la posibilidad de indicar que cursor queremos que se muestre cuando el mouse se posiciona sobre la etiqueta. En el siguiente enlace podremos encontrar una lista con los cursores disponibles en Tkinter http://www.tcl.tk/man/tcl8.5/TkCmd/cursors.htm (Ver seccion "Anexos" para ver el listado completo). El valor 'none' consigue eliminar el cursor cuando se pasa el cursor sobre el widget.
etiqueta = Tkinter.Label(root, text="Que te parece la guia?", cursor="hand1")
default
font
foreground (fg)
Si deseamos cambiar el color de las letras de nuestro texto cuando el widget se encuentra inactivo tendremos que utilizar esta opción, que trabaja de forma similar al ya visto 'background'. En este se también se puede utilizar su abreviatura 'fg' como podemos ver en el segundo ejemplo
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, foreground="#38EB5C")
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, fg="#38EB5C")
height
Permite indicar la altura a la que se posiciona nuestro widget en líneas no en pixeles. Si esta opción no se especifica el tamaño del elemento se ajustará dependiendo el contenido del mismo
etiqueta = Tkinter.Label(root, text="Hola Mundo!!!", height=10)
image
justify
- RIGHT
etiqueta = Tkinter.Label(root, text="Hola\n Mundo!!!", justify="right")
- CENTER
etiqueta = Tkinter.Label(root, text="Hola\n Mundo!!!", justify="center")
- LEFT
etiqueta = Tkinter.Label(root, text="Hola\n Mundo!!!", justify="left")
relief
Especifica la apariencia de un borde decorativo alrededor del widget que simula un efecto 3D sobre el elemento, el ancho de esta sombra depende del valor que se especifique con el atributo 'borderwidth', los posibles valores son SUNKEN, RAISED, GROOVE, RIDGE, FLAT. El valor por defecto es FLAT que no coloca ningún borde sobre el widget.
Descripción de los cuatro estilos:
- SUNKEN
- Borde hundido, que provoca que el elemento que encierra parezca que se encuentra por debajo del nivel de la superficie de la pantalla.
- RAISED
- Borde saliente, que provoca que el elemento que encierra parezca que se encuentra por encima del nivel de la superficie de la pantalla.
- GROOVE
- Borde hundido, que visualmente parece que se encuentra por debajo del nivel de la superficie de la pantalla.
- RIDGE
- Borde saliente, que visualmente parece que se encuentra por encima del nivel de la superficie de la pantalla.
- FLAT
- No se muestra ningún borde.
Ejemplos:
- SUNKEN
etiqueta = Tkinter.Label(root, text="Hola Mundo!!!", relief="sunken", borderwidth=5)
- RAISED
etiqueta = Tkinter.Label(root, text="Hola Mundo!!!", relief="raised", borderwidth=5)
- GROOVE
etiqueta = Tkinter.Label(root, text="Hola Mundo!!!", relief="groove", borderwidth=5)
- RIDGE
etiqueta = Tkinter.Label(root, text="Hola Mundo!!!", relief="ridge", borderwidth=5)
- FLAT
etiqueta = Tkinter.Label(root, text="Hola Mundo!!!", relief="flat", borderwidth=5)
text
Este es un elemento muy importante para los widgets como Label o Button entre otros, esta opción nos da la posibilidad de incluir un texto dentro del widget, este texto puede contener saltos de líneas en caso de ser necesario y también se puede utilizar una variable para indicar la cadena de texto a usar. Si se utiliza una imagen este elemento es ignorado por Tkinter.
Ejemplo simple:
etiqueta = Tkinter.Label(root, text="Codigo Python")
Ejemplo con una variable:
texto = "Codigo Python" etiqueta = Tkinter.Label(root, text=texto)
Ejemplo con salto de linea (recuerden que deben usar el carácter \n para el salto de linea):
etiqueta = Tkinter.Label(root, text="Hola \n a todos")
Ejemplo con tabulación (recuerden que deben usar el carácter \t para la tabulación):
etiqueta = Tkinter.Label(root, text="Hola \t a todos")
textvariable
underline
Permite subrayar una letra de nuestra etiqueta, algo que es muy útil para por ejemplo destacar un atajo con el teclado. La forma en que se utiliza es indicando el índice de la cadena de texto que conforma nuestra etiqueta comenzando desde cero. El valor por defecto de esta opción es -1 lo que logra que no se subraye ninguna letra
Ejemplo con una etiqueta
etiqueta = Tkinter.Label(root, text="Hola Mundo!!!", underline=3)
Ejemplo con un botón
boton = Tkinter.Button(root, text="Imprimir Hola Mundo!!!", command=funcion, underline=3)
width
Esta opción nos permite indicar en ancho del elemento con el que estamos trabajando midiendolo en caracteres no en pixeles si se trata de texto, si en cambio estamos trabajando con imágenes si deberemos medir en píxeles, si se le da un valor negativo este servira para indicar el ancho mínimo del widget. Si esta opción no se especifica el tamaño del elemento se ajustará dependiendo el contenido del mismo.
etiqueta = Tkinter.Label(root, text="Hola Mundo!!!", width=30)
wraplength