Python 我正在写我的第一个Gui游戏,遇到了一些小部件问题
我正在写一个文本游戏,你必须在60秒内输入尽可能多的随机生成的(来自文件)单词。我目前有一个工作计时器,但我的输入小部件不会做任何事情。 我应该能够在我的输入窗口小部件上按enter键,如果其中的单词等于生成的单词,那么分数会上升。该框也应该被清除,但它也不会这样做Python 我正在写我的第一个Gui游戏,遇到了一些小部件问题,python,tkinter,tkinter-entry,Python,Tkinter,Tkinter Entry,我正在写一个文本游戏,你必须在60秒内输入尽可能多的随机生成的(来自文件)单词。我目前有一个工作计时器,但我的输入小部件不会做任何事情。 我应该能够在我的输入窗口小部件上按enter键,如果其中的单词等于生成的单词,那么分数会上升。该框也应该被清除,但它也不会这样做 def game(*args): if timer == 60: # Starts the timer and calls the words function countdown() words()
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
root = Tk()
root.title("Text Typers")
# Create the top frame
top_frame = ttk.LabelFrame(root, text="Menu:")
top_frame.grid(row=0, column=0, padx=10, pady=10, sticky="NSEW")
# Play button
play_button = ttk.Button(top_frame, text="Play", command=game)
play_button.grid(row=5, column=0, columnspan=2, padx=10, pady=10)
# Timer
time_label = ttk.Label(top_frame, text="Time left: " + str(timer))
time_label.grid(row=6, column=0, columnspan=2, padx=10, pady=10)
# Entry function
entry = ttk.Entry(root)
entry.grid(row=8, column=0)
# Word label
word_label = ttk.Label(root, font=20)
word_label.grid(row=7, column=0, padx=10, pady=10)
root.mainloop()
这是所有相关的GUI代码。我头上有什么事吗?
编辑:经过更多测试后,代码似乎甚至没有运行到“if entry”部分,是不是因为计时器功能正在运行并阻止单词功能正常运行?如果您想在按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
frame=tkinter.frame(根)
帧绑定(“”,按键)
frame.pack
你有缩进错误,从如果计时器开始…
在这里复制它是一个错误,代码本身没有任何缩进错误,请回答问题并修复它!按enter键:读取事件参数的作用?另外,Keysm给我带来了麻烦,我使用的是python3。