Python - Ayuda urgente, ventanas

 
Vista:
sin imagen de perfil

Ayuda urgente, ventanas

Publicado por Carlos (1 intervención) el 17/10/2021 17:50:15
Buen día, me gustaría que me apoyaran a que mi código funcione, la ventana que se crea suelta 3 botones, uno de ellos es el correcto, posteriormente sale un mensaje(Presiones el botón correcto o no) con los botones de si y no, al momento de que presione "no" sí se acaba el programa, pero me gustaría que nada más se cierre la ventana, por otro lado, me gustaría que al presionar "sí", la ventana reinicie su función y vuelva a correr con los mismos valores aleatorios.
espero puedan ayudarme, gracias
Aquí mi código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import tkinter as tk
import tkinter.font as tkFont
import random as rm
from tkinter import ttk
from tkinter import messagebox
import os
import sys
 
def boton1():
    a=messagebox.askyesno("Vuelve a intentar", "La respuesta fue incorrecta, ¿quieres intentar otro?")
    if a== False:
        exit()
    else:
        suma()
def boton2():
    a=messagebox.askyesno("Vuelve a intentar", "La respuesta fue incorrecta, ¿quieres intentar otro?")
    if a== False:
        exit()
    else:
        suma()
def boton3():
    a=messagebox.askyesno("¡Felicidades!", "La respuesta fue correcta, ¿quieres intentar otro?")
    if a== False:
        exit()
    else:
        suma()
 
def suma():
    nums=[rm.randint(1,10), rm.randint(1,10), rm.randint(1,10)]
    nums2=[rm.randint(1,10), rm.randint(1,10), rm.randint(1,10)]
    nums2[2]=nums[2]
    while nums2[1]==nums2[0]:
        nums2[1]=rm.randint(1,10)
    while nums2[1]==nums2[2]:
        nums2[1]=rm.randint(1,10)
    while nums2[0]==nums2[2]:
        nums2[0]=rm.randint(1,10)
    v=tk.Tk()      #Genera la ventana
    v.geometry("550x500")       #Define el tamaño de la ventana
    v.title("Matemáticas en suma")        #Define el título de la ventana
    v.configure(background= "dark turquoise")     #Define el color de fondo de la ventana
    font_e1=tkFont.Font(family="Arial Black", size=25)       #Define la fuente con el tamaño
    font_e2=tkFont.Font(family="Arial ", size=15)
    e1=tk.Label(v,text='''
    Bienvenido al juego de
    "Suma" en la sección
    de matemáticas''', font= font_e1, fg="Black", bg="dark turquoise")
    e1.pack(padx=10, pady=10)
    e2=tk.Label(v,text="Encuentra el número que falta y seleciona el botón con la opción correcta", font=font_e2, fg="Black", bg="dark turquoise")
    e2.pack(padx=10, pady=10)
    e3=tk.Label(v,text=f"""
    {nums[0]}
    +
    {nums[1]}  + |   ?   |  = {nums[1]+nums[2]}
    ||
    {nums[0]+nums[2]}
    """, font=font_e2, fg="Black", bg="dark turquoise")
    e3.pack(padx=10, pady=0)
    b1=ttk.Button(text=nums2[0], command=boton1)
    b1.pack(padx=50, pady= 20, side=tk.LEFT)
    b2=ttk.Button(text=nums2[1], command=boton2)
    b2.pack(padx=50, pady= 20, side=tk.LEFT)
    b3=ttk.Button(text=nums2[2], command=boton3)
    b3.pack(padx=50, pady= 20, side=tk.LEFT)
    v.mainloop()
#Menú principal
suma()

Captura-de-pantalla-2021-10-17-a-las-10.47.41
En esta primera captura, se ve la interfaz del botón
Captura-de-pantalla-2021-10-17-a-las-10.47.23
En esta se ve qué sucede cuando se presiona que sí quiere intentar otra vez
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder