Pedir dos números e indicar si son divisibles utilizando la biblioteca tkinter, con los dos métodos grid y pack.
En este ejemplo, se creará una ventana de Tkinter utilizando tk.Tk(). Luego, se agrega etiquetas y campos de entrada para que el usuario introduzaca los dos números. También agregamos un botón "Aceptar" que, cuando se presiona, llama a la función verificar_divisibilidad y función verificar.
Función verificar
Comprueba verifica si los datos introducidos son números.
def validar(valor,valor1):
if valor.isdigit() and valor1.isdigit():
valor=True
else:
valor=False
return valor
La función verificar_divisibilidad
Obtiene los valores introducidos por el usuario de los campos de entrada y verifica si el primer número es divisible por el segundo número utilizando el operador % y viceversa. Previamente verifica que los datos introducidos sean valores numéricos con la función verificar.
def verificar_divisibilidad():
num1 = entry_num1.get()
num2 = entry_num2.get()
valor=validar(num1,num2)
if valor:
if int(num1) % int(num2)==0 or int(num2) % int(num1) == 0:
texto1="Son divisibles"
else:
texto1="No son divisibles"
else:
texto1="Algún dato no es númerico"
texto.set(texto1)
Método grid
import tkinter as tk
def validar(valor,valor1):
if valor.isdigit() and valor1.isdigit():
valor=True
else:
valor=False
return valor
def verificar_divisibilidad():
num1 = entry_num1.get()
num2 = entry_num2.get()
valor=validar(num1,num2)
if valor:
if int(num1) % int(num2)==0 or int(num2) % int(num1) == 0:
texto1="Son divisibles"
else:
texto1="No son divisibles"
else:
texto1="Algún dato no es númerico"
texto.set(texto1)
# Crear la ventana
ventana = tk.Tk()
ventana.title("Verificar Divisibilidad")
ventana.resizable(True, True)
# ancho y alto de la ventana
ventana.geometry("550x550")
# Etiqueta y campo de entrada para el primer número
label_num1 = tk.Label(ventana, text="Número 1:")
label_num1.grid(row=0, column=0)
entry_num1 = tk.Entry(ventana)
entry_num1.grid(row=0, column=1)
# Etiqueta y campo de entrada para el segundo número
label_num2 = tk.Label(ventana, text="Número 2:")
label_num2.grid(row=1, column=0)
entry_num2 = tk.Entry(ventana)
entry_num2.grid(row=1, column=1)
# Botón para verificar la divisibilidad
boton_aceptar = tk.Button(ventana, text="Aceptar", command=verificar_divisibilidad)
boton_aceptar.grid(row=2, columnspan=2)
# Etiqueta para mostrar el resultado
texto=tk.StringVar()
label_resultado = tk.Label(ventana, textvariable=texto)
label_resultado.grid(row=3, columnspan=2)
# Iniciar el bucle de eventos
ventana.mainloop()
Método pack
import tkinter as tk
def validar(valor,valor1):
if valor.isdigit() and valor1.isdigit():
valor=True
else:
valor=False
return valor
def verificar_divisibilidad():
num1 = entry_num1.get()
num2 = entry_num2.get()
valor=validar(num1,num2)
if valor:
if int(num1) % int(num2)==0 or int(num2) % int(num1) == 0:
texto1="Son divisibles"
else:
texto1="No son divisibles"
else:
texto1="Algún dato no es númerico"
texto.set(texto1)
# Crear la ventana
ventana = tk.Tk()
ventana.title("Verificar Divisibilidad")
ventana.resizable(True, True)
# ancho y alto de la ventana
ventana.geometry("550x550")
# Etiqueta y campo de entrada para el primer número
label_num1 = tk.Label(ventana, text="Número 1:")
label_num1.pack()
entry_num1 = tk.Entry(ventana)
entry_num1.pack()
# Etiqueta y campo de entrada para el segundo número
label_num2 = tk.Label(ventana, text="Número 2:")
label_num2.pack()
entry_num2 = tk.Entry(ventana)
entry_num2.pack()
# Botón para verificar la divisibilidad
boton_aceptar = tk.Button(ventana, text="Aceptar", command=verificar_divisibilidad)
boton_aceptar.pack()
texto=tk.StringVar()
# Etiqueta para mostrar el resultado
label_resultado = tk.Label(ventana, textvariable=texto)
label_resultado.pack()
# Iniciar el bucle de eventos
ventana.mainloop()
Método pack, utilizando side
import tkinter as tk
def validar(valor,valor1):
if valor.isdigit() and valor1.isdigit():
valor=True
else:
valor=False
return valor
def verificar_divisibilidad():
num1 = entry_num1.get()
num2 = entry_num2.get()
valor=validar(num1,num2)
if valor:
if int(num1) % int(num2)==0 or int(num2) % int(num1) == 0:
texto1="Son divisibles"
else:
texto1="No son divisibles"
else:
texto1="Algún dato no es númerico"
texto.set(texto1)
# Crear la ventana
ventana = tk.Tk()
ventana.title("Verificar Divisibilidad")
# ancho y alto de la ventana
# Etiqueta y campo de entrada para el primer número
label_num1 = tk.Label(ventana, text="Número 1:")
label_num1.pack(side=tk.LEFT)
entry_num1 = tk.Entry(ventana)
entry_num1.pack(side=tk.LEFT)
# Etiqueta y campo de entrada para el segundo número
label_num2 = tk.Label(ventana, text="Número 2:")
label_num2.pack(side=tk.LEFT)
entry_num2 = tk.Entry(ventana)
entry_num2.pack(side=tk.LEFT)
# Botón para verificar la divisibilidad
boton_aceptar = tk.Button(ventana, text="Aceptar", command=verificar_divisibilidad)
boton_aceptar.pack()
texto=tk.StringVar()
# Etiqueta para mostrar el resultado
label_resultado = tk.Label(ventana, textvariable=texto)
label_resultado.pack()
# Iniciar el bucle de eventos
ventana.mainloop()
Metódo pack, utilizando messagebox
import tkinter as tk
from tkinter import messagebox
def validar(valor,valor1):
if valor.isdigit() and valor1.isdigit():
valor=True
else:
valor=False
return valor
def verificar_divisibilidad():
num1 = entry_num1.get()
num2 = entry_num2.get()
valor=validar(num1,num2)
if valor:
if int(num1) % int(num2)==0 or int(num2) % int(num1) == 0:
messagebox.showinfo("Divisibilidad", f"{num1} es divisible por {num2}")
else:
messagebox.showinfo("Divisibilidad", f"{num1} no es divisible por {num2}")
else:
messagebox.showinfo(message="Algún dato no es númerico",title="Error")
ventana = tk.Tk()
ventana.title("Verificar Divisibilidad")
ventana.resizable(True, True)
# ancho y alto de la ventana
ventana.geometry("550x550")
# Etiqueta y entrada para el primer número
label_num1 = tk.Label(ventana, text="Primer número:")
label_num1.pack()
entry_num1 = tk.Entry(ventana)
entry_num1.pack()
# Etiqueta y entrada para el segundo número
label_num2 = tk.Label(ventana, text="Segundo número:")
label_num2.pack()
entry_num2 = tk.Entry(ventana)
entry_num2.pack()
# Botón Aceptar
btn_aceptar = tk.Button(ventana, text="Aceptar", command=verificar_divisibilidad)
btn_aceptar.pack()
ventana.mainloop()