我正在写我的第一个Gui游戏,并遇到一些小部件问题

时间:2020-05-06 10:48:30

标签: python tkinter tkinter-entry

我正在编写一个文本游戏,您必须在60秒内输入尽可能多的随机生成(从文件中)的单词。我目前有一个工作计时器,但我的输入小部件无法执行任何操作。 我应该能够在我的输入小部件上按Enter键,并且如果其中的单词等于生成的单词,则得分会上升。该框也应清除,但也不会清除。

develop

这些是涉及的主要功能。

def game(*args):
    if timer == 60: # Starts the timer and calls the words function
        countdown()
    words()


def words():
    global score
    global timer

    if timer > 0:
        entry.focus_set()  # Activate the entry box
        word = str(random.choice(word_list[0]))
        word_label.config(text=word)
        if entry.get().lower() == word.lower():
            score += 1
            entry.delete(0, 9999999)
    if timer == 0:
        results(score)


def countdown():
    global timer

    if timer > 0:
        timer -= 1
        # Update the time left label
        time_label.config(text="Time left: " + str(timer))

        # Run the function again after 1 second
        time_label.after(1000, countdown)

这是所有相关的GUI代码。我头上有些东西了吗? 编辑:经过更多测试后,代码似乎甚至没有运行到“如果输入”部分,是因为存在计时器功能正在运行并阻止单词功能正常运行?

1 个答案:

答案 0 :(得分:-1)

如果要在按Enter键时检查单词,则可能要添加一个按键监听事件,这是我的处理方式:

def key_press(event):
     #here you would put your function for checking the word
     print "key_press", repr(event.char)

然后,在您的根目录上:

frame = tkinter.Frame(root)
frame.bind("<KeyRelease-enter>", key_press)
frame.pack