Tkinter gui en Python

Tkinter gui en Python
Las GUI permiten a los usuarios interactuar con la computadora y son una parte importante de la codificación. Este tutorial aprenderá cómo usar Tkinter para crear una GUI, particularmente un convertidor de divisas.

Instale tkinter de la siguiente manera:

PIP install tk

Paso 1: Crear la ventana

Lo primero que debemos hacer es crear la ventana usando la clase TK (). Sin embargo, comenzamos la ventana y mantenemos en funcionamiento utilizando el método MainLoop (). Tenga en cuenta que la ventana que creó no será visible sin el método mainloop ()! Recuerde que el método MainLoop () debe colocarse al final del código; De lo contrario, el resto no funcionará. La ventana.mainloop () y el tk () juntos crearán una ventana en blanco y vacía. Esta ventana es nuestra base.

Importar tkinter como tk
# Crea la ventana
Ventana = TK.Tk ()
#Bucle principal
ventana.bucle principal()

Paso 2: Dale un título a la ventana

A continuación, le dé un título a esta ventana en blanco usando el método Title (). El método title () toma un solo argumento: el título de la ventana.

importar tkinter como tk
Ventana = TK.Tk ()
# Dale un título
Encabezado = ventana.Título ("convertidor de divisas")
ventana.bucle principal()

Paso 3: crear un lienzo

El widget de lona se usa para agregar diseños. Ahora definimos el widget de lienzo, que puede tomar 13 argumentos al máximo. Sin embargo, los argumentos más importantes son la ventana con la que queremos trabajar y la altura y el ancho del lienzo. En Tkinter, la mayoría de las cosas están empacadas, por lo que el lienzo está empaquetado utilizando el método Pack () para funcionar.

importar tkinter como tk
Ventana = TK.Tk ()
Encabezado = ventana.Título ("convertidor de divisas")
lienzo = tk.Lienzo (ventana, ancho = 550, altura = 330)
lienzo.embalar()
ventana.bucle principal()

Paso 4: Agregar etiquetas

Las etiquetas son básicamente solo fragmentos de textos que agregamos a la ventana. En mi caso, agregaré 3 etiquetas: una etiqueta es el título, y las otras dos son instrucciones. El widget de la etiqueta toma 2 argumentos aquí: la ventana para colocar el texto y el texto para escribir en él. Puede personalizarlo más usando config () para pasar la fuente y el tamaño del texto que acaba de escribir.

Además, creamos un objeto de ventana de lienzo usando create_window (). Create_window () toma como máximo 6 argumentos: el ancla, la altura, el estado, las etiquetas, el ancho y la ventana (el widget utilizado para hacer el lienzo). Solo usaremos ancla y ventana para create_windows (). Entonces, en mi caso, para la segunda etiqueta - etiqueta_search_bar - quiero que se coloque en x = 150, y = 120, y la ventana que usaré es la etiqueta que creamos (lienzo.create_window (150, 120, Window = Labor_search_bar)).

importar tkinter como tk
Ventana = TK.Tk ()
Encabezado = ventana.Título ("convertidor de divisas")
lienzo = tk.Lienzo (ventana, ancho = 550, altura = 330)
lienzo.embalar()
etiqueta = TK.Etiqueta (ventana, text = "convertidor de divisas de Kalyani")
etiqueta.config (font = ('Helvetica', 14))
lienzo.create_window (270, 75, ventana = etiqueta)
etiqueta_search_bar = tk.Etiqueta (ventana, text = "de (ex: 500 USD):")
etiqueta.config (font = ('Helvetica', 14))
lienzo.create_window (150, 120, Window = Labor_search_bar)
etiqueta_convert_currency = tk.Etiqueta (ventana, text = "a (ex: CAD):")
etiqueta.config (font = ('Helvetica', 14))
lienzo.create_window (270, 120, Window = Labor_convert_currency)
ventana.bucle principal()

Paso 5: Agregar una barra de entrada

Una barra de entrada es como una barra de búsqueda; Es un cuadro pequeño donde puede ingresar datos o información. Usamos el widget de entrada para crear la barra de entrada. El widget de entrada toma como máximo 18 argumentos. Solo usaremos uno de ellos: la ventana principal. Luego lo colocamos, como de costumbre, usando lienzo.create_window ().

importar tkinter como tk
Ventana = TK.Tk ()
Encabezado = ventana.Título ("convertidor de divisas")
lienzo = tk.Lienzo (ventana, ancho = 550, altura = 330)
lienzo.embalar()
etiqueta = TK.Etiqueta (ventana, text = "convertidor de divisas de Kalyani")
etiqueta.config (font = ('Helvetica', 14))
lienzo.create_window (270, 75, ventana = etiqueta)
etiqueta_search_bar = tk.Etiqueta (ventana, text = "de (ex: 500 USD):")
etiqueta.config (font = ('Helvetica', 14))
lienzo.create_window (150, 120, Window = Labor_search_bar)
etiqueta_convert_currency = tk.Etiqueta (ventana, text = "a (ex: CAD):")
etiqueta.config (font = ('Helvetica', 14))
lienzo.create_window (270, 120, Window = Labor_convert_currency)
Search_Bar = tk.Entrada (ventana)
lienzo.create_window (150, 150, altura = 30, width = 100, window = search_bar)
convert_currency = tk.Entrada (ventana)
lienzo.create_window (270, 150, altura = 30, ancho = 100, ventana = convert_currency)
ventana.bucle principal()

Paso 6: Agregar un botón

Para crear un botón, necesitamos el widget del botón. Este widget recibe muchos argumentos, entre los cuales se encuentran el texto (el texto a mostrar en el botón), el ancho, la altura, el BG (el color de fondo del botón), el FG (el color de primer plano del botón ), la fuente y el comando. Aquí, la parte más importante es el comando! El comando definirá una función que se activará cuando se haga clic en el botón. En mi caso, he llamado a mi function CurrencyConverter. Para empezar, pondré "pase" en mi function CurrencyConverter. (Nosotros, por supuesto, localizamos el botón usando create_window).

importar tkinter como tk
Def CurrencyConverter ():
aprobar
Ventana = TK.Tk ()
Encabezado = ventana.Título ("convertidor de divisas")
lienzo = tk.Lienzo (ventana, ancho = 550, altura = 330)
lienzo.embalar()
etiqueta = TK.Etiqueta (ventana, text = "convertidor de divisas de Kalyani")
etiqueta.config (font = ('Helvetica', 14))
lienzo.create_window (270, 75, ventana = etiqueta)
etiqueta_search_bar = tk.Etiqueta (ventana, text = "de (ex: 500 USD):")
etiqueta.config (font = ('Helvetica', 14))
lienzo.create_window (150, 120, Window = Labor_search_bar)
etiqueta_convert_currency = tk.Etiqueta (ventana, text = "a (ex: CAD):")
etiqueta.config (font = ('Helvetica', 14))
lienzo.create_window (270, 120, Window = Labor_convert_currency)
Search_Bar = tk.Entrada (ventana)
lienzo.create_window (150, 150, altura = 30, width = 100, window = search_bar)
convert_currency = tk.Entrada (ventana)
lienzo.create_window (270, 150, altura = 30, ancho = 100, ventana = convert_currency)
botón = TK.Botón(
ventana,
text = "convertir moneda",
Ancho = 25,
altura = 3,
bg = "blanco",
fg = "negro",
Font = ('Helvetica', 9, 'Bold'),
comando = CurrencyConverter
)
lienzo.create_window (275, 200, altura = 40, ancho = 150, ventana = botón)
ventana.bucle principal()

Paso 7: Escribir la función de comando

Aquí, la función de comando le dirá al programa qué hacer cuando el usuario haga clic en el botón. En mi caso, me gustaría que:

  • Obtenga los valores de entrada utilizando el método get ().
  • Verifique los valores de entrada. Quiero un número y una moneda en la primera barra de entrada, y en la segunda, quiero una moneda.
  • Convierta los valores de divisas utilizando el módulo CurrencyConverter en Python.
  • Retirar el valor
importar tkinter como tk
Def CurrencyConverter ():

Primero, buscaremos lo que el usuario escribió en las barras de entrada usando el método get () y lo colocaremos en inicial_currency.

inicial_currency = search_bar.conseguir()

Aquí, esperamos dos valores (ex: 500 USD), por lo que luego lo dividimos para convertirlo en una matriz.

array = inicial_currency.dividir(" ")

Luego decimos que si la longitud de esa matriz no es 2, queremos que arroje un error en la pantalla de la ventana. En mi caso, usaré el widget de etiqueta () para crear el texto que se mostrará. Es decir, si la longitud de mi matriz no es 2, escriba "Ingrese una cantidad y un tipo de moneda (ex: 500 USD)" en la pantalla. Colóquelo usando lienzo.create_windows ().

Si len (matriz) != 2:
print_out = etiqueta (ventana, text = "Ingrese una cantidad y un tipo de moneda (ex: 500 USD)")
lienzo.create_window (250, 310, ventana = print_out)

Entonces queremos obtener los valores que se ingresaron. El monto es el primer valor en la matriz, y el tipo de moneda es el segundo valor en la matriz.

cantidad = int (array [0])
moneda = str (matriz [1]).superior()

A continuación, necesitamos el tipo de moneda en la que se convierte la cantidad en (Ej: 500 USD a CAD). He definido una variable llamada To_Currency para obtener la entrada del usuario en la segunda barra de entrada. Una vez más, usamos el método get () para obtener el valor.

to_currency = convert_currency.conseguir()

Ahora tenemos que manipular con lo que acabamos de tener. El usuario ingresó algunas cosas, y solo queremos el primer valor de lo que se ingresó, por lo que dividimos todo y elegimos el primer valor usando [0]. (También giro todo a mayúsculas para evitar problemas).

array_to_currency = to_currency.dividir(" ")
to_currency = str (array_to_currency [0])
to_currency = to_currency.superior()

Ahora, usamos un módulo de Python llamado convertidor de divisas (PIP Install CurrencyConverter). Convertimos la moneda y obtenemos una cantidad (aquí, llamo a esta variable cantidad_converted).

de Currency_Converter Importer CurrencyConverter
C = CurrencyConverter ()
cantidad_converted = c.convertir (cantidad, moneda, to_currency)

A continuación, necesitamos imprimir esto en la ventana. Como sabemos, imprimimos texto usando el widget de la etiqueta. Dado que el monto_converted (la moneda convertida) es un flotador, decimos:

text_to_input = str (cantidad_converted) + "" + to_currency
print_out_answer = etiqueta (ventana, text = text_to_input)
lienzo.create_window (450, 150, ventana = print_out_answer)

Todo el código se vería así:

de tkinter import *
Def CurrencyConverter ():
# Obtenga la entrada en la barra de búsqueda
inicial_currency = search_bar.conseguir()
# dividirlo
array = inicial_currency.dividir(" ")
Si len (matriz) != 2:
print_out = etiqueta (ventana, text = "Ingrese una cantidad y un tipo de moneda (ex: 500 USD)")
lienzo.create_window (250, 310, ventana = print_out)
# Obtenga la cantidad "de" y la cantidad en dólares
cantidad = int (array [0])
moneda = str (matriz [1]).superior()
# Obtenga la entrada en la moneda convertir a
to_currency = convert_currency.conseguir()
array_to_currency = to_currency.dividir(" ")
to_currency = str (array_to_currency [0])
to_currency = to_currency.superior()
# conviértalo
de Currency_Converter Importer CurrencyConverter
C = CurrencyConverter ()
cantidad_converted = c.convertir (cantidad, moneda, to_currency)
# Imprima la respuesta
text_to_input = str (cantidad_converted) + "" + to_currency
print_out_answer = etiqueta (ventana, text = text_to_input)
lienzo.create_window (450, 150, ventana = print_out_answer)
# Crea la ventana
ventana = tk ()
# crear un lienzo y empacarlo
Canvas = Canvas (ventana, ancho = 550, altura = 330, relieve = 'elevado')
lienzo.embalar()
# Dale un título
Encabezado = ventana.Título ("Converter de divisas de Kalyani")
# Nombre del navegador
etiqueta = etiqueta (ventana, text = "convertidor de divisas de Kalyani")
etiqueta.config (font = ('Helvetica', 14))
lienzo.create_window (270, 75, ventana = etiqueta)
# Crea una barra de búsqueda
Search_bar = Entry (Window, Justify = Center)
lienzo.create_window (150, 150, altura = 30, width = 100, window = search_bar)
# etiqueta la barra de búsqueda
etiqueta_search_bar = etiqueta (ventana, text = "de (ex: 500 USD):")
etiqueta.config (font = ('Helvetica', 14))
lienzo.create_window (150, 120, Window = Labor_search_bar)
# Convertir moneda
convert_currency = entry (ventana, justify = center)
lienzo.create_window (270, 150, altura = 30, ancho = 100, ventana = convert_currency)
# Etiquete la moneda
etiqueta_convert_currency = etiqueta (ventana, text = "a (ex: CAD):")
etiqueta.config (font = ('Helvetica', 14))
lienzo.create_window (270, 120, Window = Labor_convert_currency)
#cree un botón
botón = botón (
ventana,
text = "convertir moneda",
Ancho = 25,
altura = 3,
bg = "blanco",
fg = "negro",
Font = ('Helvetica', 9, 'Bold'),
comando = CurrencyConverter
)
#colocar el botón
lienzo.create_window (275, 200, altura = 40, ancho = 150, ventana = botón)
#Bucle principal
ventana.bucle principal()

Aunque el código es un poco más largo de lo esperado, en realidad es bastante simple. Solo necesitas recordar algunas cosas:

  • Escribes textos con el widget de la etiqueta
  • Creas botones con el widget de botón
  • Crea barras de entrada con el widget de entrada
  • Los coloca en la ubicación correcta usando el widget de lona y create_window ()

Codificación feliz!