Python/Interfaz gráfica con Tkinter/Parámetros

Opciones editar

Muchos 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")


Archivo:Widgets/img/opciones/anchor/anchor nw.jpg
  • 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")


Archivo:Widgets/img/opciones/anchor/anchor n.jpg
  • 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")


Archivo:Widgets/img/opciones/anchor/anchor ne.jpg
  • 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")


Archivo:Widgets/img/opciones/anchor/anchor w.jpg
  • Posiciona el texto/imagen en el centro del widget
boton = Tkinter.Button(root, text="Hola Mundo!!!", command=funcion, width=20, height=10, anchor="center")


Archivo:Widgets/img/opciones/anchor/anchor center.jpg
  • 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")


Archivo:Widgets/img/opciones/anchor/anchor e.jpg
  • 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")


Archivo:Widgets/img/opciones/anchor/anchor sw.jpg
  • 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")


Archivo:Widgets/img/opciones/anchor/anchor s.jpg
  • 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")


Archivo:Widgets/img/opciones/anchor/anchor se.jpg



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")
Archivo:Widgets/img/opciones/activebackground.jpg

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")
Archivo:Widgets/img/opciones/activeforeground.jpg

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")
Archivo:Widgets/img/opciones/background.jpg

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)
Archivo:Widgets/img/opciones/borderwidth.jpg

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)
Archivo:Widgets/img/Button/Button-01.jpg

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")
Archivo:Widgets/img/opciones/cursor.jpg

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")
Archivo:Widgets/img/opciones/foreground.jpg

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)
Archivo:Widgets/img/opciones/height.jpg

image


justify

  • RIGHT
etiqueta = Tkinter.Label(root, text="Hola\n Mundo!!!", justify="right")


Archivo:Widgets/img/opciones/justify/justify right.jpg
  • CENTER
etiqueta = Tkinter.Label(root, text="Hola\n Mundo!!!", justify="center")


Archivo:Widgets/img/opciones/justify/justify center.jpg
  • LEFT
etiqueta = Tkinter.Label(root, text="Hola\n Mundo!!!", justify="left")


Archivo:Widgets/img/opciones/justify/justify left.jpg



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)


Archivo:Widgets/img/opciones/relief/relief sunken.jpg
  • RAISED
etiqueta = Tkinter.Label(root, text="Hola Mundo!!!", relief="raised", borderwidth=5)


Archivo:Widgets/img/opciones/relief/relief raised.jpg
  • GROOVE
etiqueta = Tkinter.Label(root, text="Hola Mundo!!!", relief="groove", borderwidth=5)


Archivo:Widgets/img/opciones/relief/relief groove.jpg
  • RIDGE
etiqueta = Tkinter.Label(root, text="Hola Mundo!!!", relief="ridge", borderwidth=5)


Archivo:Widgets/img/opciones/relief/relief ridge.jpg
  • FLAT
etiqueta = Tkinter.Label(root, text="Hola Mundo!!!", relief="flat", borderwidth=5)


Archivo:Widgets/img/opciones/relief/relief flat.jpg



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)
Archivo:Widgets/img/Label/Label-01.jpg

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")
Archivo:Widgets/img/opciones/text-01.jpg

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")
Archivo:Widgets/img/opciones/text-02.jpg

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)
Archivo:Widgets/img/opciones/underline-01.jpg

Ejemplo con un botón

boton = Tkinter.Button(root, text="Imprimir Hola Mundo!!!", command=funcion, underline=3)
Archivo:Widgets/img/opciones/underline-02.jpg

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)
Archivo:Widgets/img/opciones/activeforeground.jpg

wraplength