Código:

import sys
from tkinter import *

credit = 0
coins = 0
choice = 0


credit1 = 0
coins = 0
prices = [200,150,160,50,90]
item = 0
i = 0
temp=0
n=0
choice1 = 0
choice2 = 0

credit1 = 0
coins = 0
prices = [200,150,160,50,90]
item = 0
i = 0
temp=0
n=0
choice1 = 0
choice2 = 0

def insert():
    insert = Tk()

    insert.geometry("450x250")
    iLabel = Label(insert, text="Enter coins.[Press Buttons]").grid(row=1, column=1)

    tenbutton = Button(insert, text="10p").grid(row=2, column=1)
    twentybutton = Button(insert, text="20p").grid(row=3, column=1)
    fiftybutton = Button(insert, text="50p").grid(row=4, column=1)
    poundbutton = Button(insert, text="£1").grid(row=5, column=1)

Estoy creando un programa que simula una máquina expendedora.
Cómo iba yo a decirle a Python para «comprobar» si el botón ha sido presionado?
En pseudocódigo sería:

if tenbutton is pressed:
   Add 10p to credit

Cómo iba yo a escribir en Python «si tenbutton se pulsa»? Gracias de antemano.

3 Comentarios

  1. 4

    Puede agregar un command a su Tkinter Button widget que le de devolución de llamada a una función:

    def tenbuttonCallback():
        global credit
        credit += 10
    
    tenbutton = Button(insert, text="10p", command=tenbuttonCallback)
    tenbutton.grid(row=2, column=1)

    Ver: http://effbot.org/tkinterbook/button.htm

    • jaja debemos tener en google lo mismo y obtener el mismo resultado 🙂
    • Yo uso Tkinter cada día. No google necesario 😉
  2. 4

    Es simple, definir una función que se llamará después de presionar el botón. Así:

    def addCredit():
        global credit
        credit+=10

    Y, a continuación, asignar esta función a un botón:

    tenbutton = Button(insert, text="10p", command=addCredit).grid(row=2, column=1)

    Por el camino, su código está mal pedir un class en algún lugar. El uso de tantos globals es generalmente una mala práctica. Otra de las pequeñeces se from tkinter import *, destruye la legibilidad. Te sugiero que import tkinter as tk.

    • Gracias por la ayuda! Funciona a la perfección!! @Dunno
  3. 0
    from tkinter import *
    import tkinter
    import tkinter.messagebox
    
    root = Tk()
    
    
    def fun(arg):
        if arg == 1:
            tkinter.messagebox.showinfo("button 1", "button 1 used")
        elif arg == 2:
            tkinter.messagebox.showinfo("button 2", "button 2 used")
        elif arg == 3:
            tkinter.messagebox.showinfo("button 3", "button 3 used")
        elif arg == 4:
            tkinter.messagebox.showinfo("button 4", "button 4 used")
    
    
    b1 = Button(root, text="Quit1", command=lambda: fun(1))
    b1.pack()
    b2 = Button(root, text="Quit2", command=lambda: fun(2))
    b2.pack()
    b3 = Button(root, text="Quit3", command=lambda: fun(3))
    b3.pack()
    b4 = Button(root, text="Quit4", command=lambda: fun(4))
    b4.pack()
    
    root.mainloop()
    • Acaba de proporcionar algunos de explicar, no sólo el código postal

Dejar respuesta

Please enter your comment!
Please enter your name here