miércoles, 23 de marzo de 2022

Interfaz Gráfica en Python, Tkinter

En las entradas anteriores se explican y aplican las diferentes correlaciones numéricas utilizadas en la obtención de las propiedades físicas del gas, petróleo y agua, dichas correlaciones son de vital importancia en la industria petrolera, dado que facilitan las propiedades de una manera analítica evitando el sesgo de los métodos gráficos.

Ahora en esta entrada se aborda una herramienta que es de mucha utilidad en el ámbito escolar y laboral, la biblioteca Tkinter, esta biblioteca es de gran ayuda para crear interfaces gráficas, por ello en las siguientes entradas se realizan las interfaces gráficas de las propiedades físicas del gas, petróleo y agua. En esta primera entrada se realizan unas pequeñas demostraciones de lo que Tkinter puede realizar, al avanzar en las siguientes entradas se mostraran las diferentes herramientas con las que cuenta la biblioteca.

A continuación se muestran dos códigos, el primero muestra una ventana vacía con el cual se busca mostrar cada uno de los componentes de la ventana de manera general. El segundo código muestra una ventana con un botón que imprime “Hola, Mundo”. Nota: Primero se explican las nuevas líneas de código y después se muestra el código completo, así como imágenes de lo que realiza el código.

Las siguientes líneas indican cómo se manda llamar la biblioteca  Tkinter, la primera línea indica que se llama a toda la biblioteca Tkinter, esto se realiza de este modo para tener todos los módulos disponibles en el código, en la segunda línea se importa el módulo Tkinter bajo el nombre de tk. Cada vez que se requiera alguna función de la biblioteca se deberá de llamar con tk.

 

from tkinter import *

import tkinter as tk

 

            Ahora se muestra el código de una ventana sin ningún ítem o artículo dentro de ella.  En la primera línea se realiza una llamada a la biblioteca y se asigna el nombre de la ventana, recuerde que este nombre es para el código por ello no será visible para el usuario.

 

Primera_Ventana = Tk()

 

En las siguientes tres líneas se determinan las dimensiones de la ventana, para ello se manda llamar geometry que pertenece a la biblioteca Tkinter y se ingresan las dimensiones de la ventana, en este caso se ingresa un largo de 400  y un ancho de 300. Las funciones maxsize y minsize evitan que la ventana cambie de forma no deseada. Nota: Si no se colocan las mismas medidas en estas líneas la ventana se deformará y provocará que los ítems de la ventana salgan de la posición seleccionada.

 

Primera_Ventana.geometry("300x400")

Primera_Ventana.maxsize(300,400)

Primera_Ventana.minsize(300,400)

 

Las siguientes dos líneas son las propiedades de la ventana, en la primera línea se observa la función title la cual permite colocar el título de la  ventana, en este caso la ventana se llama Primera ventana. En la siguiente línea se encuentra la función configure la cual permite cambiar el color de la ventana, el tipo de letra, el color de la letra, etc.

 

Primera_Ventana.title("Primera Ventana")

Primera_Ventana.configure(background="blue")

 

Para finalizar con este primer ejemplo se tiene la función mainloop la cual activa y mantiene abierta la ventana que sea creado, es muy importante agregar esta línea.

 

Primera_Ventana.mainloop()

 

Código completo del ejemplo:

 

Primera_Ventana = Tk()

Primera_Ventana.geometry("300x400")

Primera_Ventana.maxsize(300,400)

Primera_Ventana.minsize(300,400)

Primera_Ventana.title("Primera Ventana")

Primera_Ventana.configure(background="blue")

 

Primera_Ventana.mainloop()


El código devuelve lo siguiente:




En el siguiente ejemplo se muestra como se implementa una función la cual imprime “Hola, Mundo”.

En este ejemplo se agregan dos ítems los cuales son un botón y un mensaje, dichos ítems son importantes dado que el botón permite llamar funciones y el mensaje muestra el resultado de estas, se debe de aclarar que el mensaje no admite datos de entrada, sólo de salida.

            Para colocar un botón se requiere mandar llamar la función Button, dicha función recibe lo siguiente:

 

Boton = Button(

Segunda_Ventana, >>> el nombre de la ventana o el espacio que contendrá el botón

 activebackground="#ececec", >>>  el color que tendrá el botón al ser activado

 activeforeground="#000000", >>> el color de las letras al ser activado el botón

background="#d9d9d9", >>> el color del botón sin ser activado

disabledforeground="#a3a3a3", >>> el color del botón al estar desactivado

foreground="#000000", >>> el color de las letras

pady="0", >>> es el relleno adicional por encima y debajo del texto

text='''Imprimir''', >>> Se indica el texto que contiene el botón

command = Funcion >>> Manda llamar a la función deseada

 

place(relx=0.25, rely=0.35, height=44, width=157)  >>> la función place alberga la posición del botón dentro de la ventana o espacio que lo contiene, considera un sistema de coordenadas cartesianas en el que X es el eje horizontal y Y el vertical; además contiene el espesor y el ancho con el fin de dar el tamaño deseado al botón.

 

El código para un botón es el siguiente:

 

Boton = Button(Segunda_Ventana, activebackground="#ececec", activeforeground="#000000", background="#d9d9d9", disabledforeground="#a3a3a3", foreground="#000000", highlightbackground="#d9d9d9", highlightcolor="black", pady="0", text='''Imprimir''', command = Funcion).place(relx=0.25, rely=0.35, height=44, width=157)

 

El código del mensaje es parecido al código del botón, con la diferencia de una división en tres partes, en la primera parte se nombra al mensaje y se le da lugar en la ventana, la segunda parte se encuentra place esta función indica el lugar donde se coloca el mensaje, se utiliza el mismo sistema de coordenadas que en el botón, la última parte se trata de la configuración de los atributos del mensaje, los cuales son similares a los atributos que se explicaron anteriormente.

 

Mensaje = tk.Message(Segunda_Ventana)

Mensaje.place(relx=0.25, rely=0.55, height=44, width=157

Mensaje.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text=''' ''')

 

El código completo se muestra a continuación:

 

Segunda_Ventana = Tk()

Segunda_Ventana.geometry("300x400")

Segunda_Ventana.maxsize(300,400)

Segunda_Ventana.minsize(300,400)

Segunda_Ventana.title("Segunda Ventana")

Segunda_Ventana.configure(background="turquoise3",highlightbackground="turquoise3",highlightcolor="black")

 

def Funcion():

 

            Mensaje = tk.Message(Segunda_Ventana)

            Mensaje.place(relx=0.25, rely=0.55, height=44, width=157)#218#873

Mensaje.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''Hola, Mundo''')

 

            return

 

Boton = Button(Segunda_Ventana,activebackground="#ececec",activeforeground="#000000",background="#d9d9d9",disabledforeground="#a3a3a3",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",pady="0",text='''Imprimir''',command = Funcion).place(relx=0.25, rely=0.35, height=44, width=157)

 

Mensaje = tk.Message(Segunda_Ventana)

Mensaje.place(relx=0.25, rely=0.55, height=44, width=157)#218#873

Mensaje.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text=''' ''')

 

Segunda_Ventana.mainloop()

 

El código devuelve lo siguiente:

 

No hay comentarios.:

Publicar un comentario