Python - Ayuda con tkinter y mas

 
Vista:
sin imagen de perfil
Val: 233
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Ayuda con tkinter y mas

Publicado por salvamn (62 intervenciones) el 01/11/2019 23:27:07
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
import tkinter as tk
from tkinter import messagebox #importar esta funcion 
 
ventana = tk.Tk()
ventana.title("Proyecto Zero")
ventana.geometry("300x145")
ventana.resizable(False,False)
ventana.configure(background="dark slate blue") #para ponerle colo de fondo a la ventana
 
PrimeraPregunta = tk.Label(ventana, text="¿Que seleccion gano la copa america 2019?", bg="red", fg="gold")
PrimeraPregunta.pack(padx=5, pady=5, ipadx=5, ipady=5,fill=tk.X)
entrada = tk.Entry(ventana)
 
 
 
 
 
def mensaje():
    messagebox.showinfo("informacion", "Incorrecto") #informacion es el titulo al presionar el boton y un mensaje simple es lo que te dira el boton
 
boton = tk.Button(ventana, text = "A. Chile", command = mensaje ) #variable boton 
boton.pack()
boton.place(x=15, y=50)#para cambiar la posicion del boton 
 
 
def mensaje2():
    messagebox.showinfo("informacion 2", "Correcto")
 
botonDos = tk.Button(ventana, text = "B. Brasil", command = mensaje2)
botonDos.pack()
botonDos.place(x=75, y=50)
 
 
def mensaje3():
    messagebox.showinfo("informacion", "Incorrecto") #informacion es el titulo al presionar el boton y un mensaje simple es lo que te dira el boton
 
boton = tk.Button(ventana, text = "C. Argentina", command = mensaje ) #variable boton 
boton.pack()
boton.place(x=135, y=50)#para cambiar la posicion del boton 
 
def mensaje4():
    messagebox.showinfo("informacion", "Incorrecto") #informacion es el titulo al presionar el boton y un mensaje simple es lo que te dira el boton
 
boton = tk.Button(ventana, text = "D. Peru", command = mensaje ) #variable boton 
boton.pack()
boton.place(x=220, y=50)#para cambiar la posicion del boton 
 
 
 
 
ventana.mainloop()
Buenas gente, bueno tengo una par de problemas, el primer problema que tengo es el asunto de los botones que al presionarlos se me abre otra ventana y no quiero eso, quiero que el botón que tenga la alternativa correcta se marque en verde y si marco un botón con la alternativa incorrecta se marque en rojo, bueno mi segundo problema es que quiero cuando presiones el botón con la respuesta correcta pase a la siguiente pregunta y nose como hacer eso, soy nuevo en esto y agradecería mucho una ayuda desde ya muchas gracias.
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
Imágen de perfil de Víctor
Val: 18
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con tkinter y mas

Publicado por Víctor (9 intervenciones) el 02/11/2019 10:09:01
Hola:

El programa hace lo que le pides. Con la linea:
1
messagebox.showinfo("informacion 2", "Correcto")
Le pides que abra una ventana de información con un mensaje.
Si lo que quieres es que el botón cambia a rojo debes decirle que el botonDos tenga color de fondo rojo. en la linea:
1
ventana.configure(background="dark slate blue")
lo haces para la ventana, hazlo pero para el botón en el método "mansaje2".

Pero si trabajas con mac no te va a funcionar: no se pueden cambiar los colores de los botones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 233
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Ayuda con tkinter y mas

Publicado por salvamn (62 intervenciones) el 02/11/2019 14:46:55
gracias amigo, sabes si hay algún método que al presionar el botón no se abra una mini ventana?, que en la ventana principal aparezca un mensaje que diga "correcto"?, bueno ya solucione lo de la mini ventana solo me falta hacer que al presionar el boton aparezca un mensaje pero en la ventana principal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda con tkinter y mas

Publicado por tincopasan (1082 intervenciones) el 03/11/2019 09:25:27
hola, me puse a cambiar un poco tú 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#-*- coding: utf -8 -*-
from tkinter import *
 
ventana = Tk()
ventana.title("Proyecto Zero")
ventana.geometry("300x145")
ventana.resizable(False,False)
ventana.configure(background="dark slate blue")
respuesta = "BRASIL"
x  = 0
 
preguntas=[["¿Qué selección ganó la copa América 2019?","Chile","BRASIL","Argentina","Perú"],
           ["Director Técnico Uruguayo","Bielsa","Gareca","Sampaoli","TABARÉZ"],
           ["Goleador Copa América 2019","GUERRERO","Firmino","Sánchez","Suárez"],
           ["Más tarjetas amarillas","Martínez","Cuadrado","VIDAL","Silva"]]
 
def limpiar_botones():
    boton1.config(bg = 'white')
    boton2.config(bg = 'white')
    boton3.config(bg = 'white')
    boton4.config(bg = 'white')
 
def juego_terminado():
    lblPregunta.config(text="¡¡Felicitaciones!!")
    boton1.config(text='Teminaste')
    boton2.config(text='todas')
    boton3.config(text='las')
    boton4.config(text='preguntas')
 
def mensaje1():
    global respuesta
    global x
    if respuesta == boton1['text'].upper():
        boton1.config(bg='green')
        x += 1
        if x < len(preguntas):
            limpiar_botones()
            for y in preguntas[x]:
                if y.isupper():
                    respuesta = y
            return avanzar(x)
        else:
            limpiar_botones()
            juego_terminado()
            return
    else:
        boton1.config(bg = 'red')
 
def mensaje2():
    global respuesta
    global x
    if respuesta == boton2['text'].upper():
        boton2.config(bg='green')
        x  += 1
        if x < len(preguntas):
            limpiar_botones()
            for y in preguntas[x]:
                if y.isupper():
                    respuesta = y
            return avanzar(x)
        else:
            limpiar_botones()
            juego_terminado()
            return
    else:
        boton2.config(bg = 'red')
 
def mensaje3():
    global respuesta
    global x
    if respuesta == boton3['text'].upper():
        boton3.config(bg='green')
        x += 1
        if x < len(preguntas):
            limpiar_botones()
            for y in preguntas[x]:
                if y.isupper():
                    respuesta = y
            return avanzar(x)
        else:
            limpiar_botones()
            juego_terminado()
            return
    else:
        boton3.config(bg = 'red')
 
def mensaje4():
    global respuesta
    global x
    if respuesta == boton4['text'].upper():
        boton4.config(bg='green')
        x += 1
        if x < len(preguntas):
            limpiar_botones()
            for y in preguntas[x]:
                if y.isupper():
                    respuesta = y
            return avanzar(x)
        else:
            limpiar_botones()
            juego_terminado()
            return
    else:
        boton4.config(bg = 'red')
 
 
lblPregunta =Label(ventana, text = "Inicio", justify="center",  bg="red", fg="gold")
lblPregunta.pack(padx=5, pady=5, ipadx=5, ipady=5,fill=X)
 
boton1 =Button(ventana, text = "Inicio",  justify="center", width=8,command = mensaje1 ) #variable boton 
boton1.pack()
boton1.place(x=1, y=50)#para cambiar la posicion del boton 
 
boton2 = Button(ventana, text = "lnicio", justify="center" , width=8,command = mensaje2)
boton2.pack()
boton2.place(x=76, y=50)
 
boton3 = Button(ventana, text = "Inicio",  justify="center",width=8,command = mensaje3 ) #variable boton 
boton3.pack()
boton3.place(x=151, y=50)#para cambiar la posicion del boton 
 
boton4 = Button(ventana, text = "Inicio",  justify="center",width=8,command = mensaje4) #variable boton 
boton4.pack()
boton4.place(x=225, y=50)#para cambiar la posicion del boton 
 
def avanzar(x):
    lblPregunta.config(text = preguntas[x][0])
    boton1.config(text = preguntas[x][1].lower().capitalize())
    boton2.config(text = preguntas[x][2].lower().capitalize())
    boton3.config(text = preguntas[x][3].lower().capitalize())
    boton4.config(text = preguntas[x][4].lower().capitalize())
 
avanzar(x)
ventana.mainloop()

Imaginate que con tu forma tendrías que crear botones y etiquetas para cada pregunta, más allá de que no cambian de color como lo habías planteado, así que:
ahora no hay mensaje de correcto o incorrecto
si la respuesta es correcta boton verde y pasa a otra pregunta
si la respuesta es incorrecta color rojo
las preguntas están en un lista de listas(matriz)
por lo tanto agregando otra lista de 5 elementos donde el elemento 0 es la pregunta y el resto la posible respuesta
la respuesta correcta debe estar toda con mayúsculas en la lista así la detecta el script
ajuste los botones a un ancho estático para que no varien segun el contenido.
En mi caso no lo haría así, pero traté de seguir los más posible tu código.
Espero lo entiendas y sino hay muchos tutoriales de tkinter, ya que sos nuevo es muy bueno que vayas leyendo.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 233
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Ayuda con tkinter y mas

Publicado por salvamn (62 intervenciones) el 03/11/2019 22:33:24
Te agradezco un montón amigo, estudiare el código que me pasaste, y si estoy buscando información, tutoriales etc
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar