Как я могу связать одну функцию с другой в Python - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь сделать так, чтобы мой код сначала привязывался к красному, а обработчик красного - к желтому после завершения красного.Я не уверен, как это сделать.Кто-нибудь знает, как это делается.Потому что в моем коде, если вы запустите его.Он запускает только желтую функцию вместо красной, и я уверен, что это потому, что я перезаписываю функцию связывания.

from tkinter import *
import random
root = Tk()
root.geometry("300x300")
score = 0
lb1 = Listbox(root)
e = Entry(root)



def binder1():
    root.bind('<Return>', red)


def red(event):
    print(e.get())
    if e.get() == "red":
        lb1.insert("end", "Correct")
        binder1
        global score
        score += 1
        mb4['text'] = str("Score ") + str(score)


redcolour = Label(root, text = "What colour is this boi!", fg = "Red")


def yellow(event):
    print(e.get())
    if e.get() == "yellow":
        lb1.insert("end", "Correct")
        global score
        score += 1
        mb4['text'] = str("Score ") + str(score)

root.bind('<Return>', yellow)
yellowcolour = Label(root, text = "What colour is this boi!", fg = "Yellow")


mb4= Menubutton(root, text = str("Score: ") + str(score))
mb4.menu = Menu(mb4)





e.focus_set()
e.pack()
yellowcolour.pack()
redcolour.pack()
lb1.pack()
mb4.pack()
root.mainloop()

1 Ответ

0 голосов
/ 12 октября 2018

Мне непонятно, почему вы хотите сначала связать красный.

Я бы сделал это более динамично и позволил бы принимать решения по пользовательскому вводу.

вот так:

from tkinter import *

def check_input(event):
    global score
    my_input = e.get()
    if my_input == "yellow":
        lb1.insert("end", "Correct yellow")
        score += 1
        mb4['text'] = str("Score ") + str(score)
    elif my_input == "red":
        lb1.insert("end", "Correct red")
        score += 1
        mb4['text'] = str("Score ") + str(score)
    else:
        return None


if __name__ == "__main__":
    root = Tk()
    root.geometry("300x300")
    root.bind('<Return>', check_input)
    score = 0

    lb1 = Listbox(root)
    e = Entry(root)
    redcolour = Label(root, text = "What colour is this boi!", fg = "Red")  
    yellowcolour = Label(root, text = "What colour is this boi!", fg = "Yellow")
    mb4= Menubutton(root, text = str("Score: ") + str(score))

    e.focus_set()

    e.pack()
    yellowcolour.pack()
    redcolour.pack()
    lb1.pack()
    mb4.pack()

    root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...