python - 用 Tkinter、Python3 猜数字
问题描述
这是我的代码:
from tkinter import *
import random
def initGame():
window = Tk()
window.title("Guess the number game")
lbl = Label(window, text="Guess number from 1 to 100. Insert how many tries would you like to have: ", font=("",16))
lbl.grid(column=0, row=0)
txt = Entry(window, width=10)
txt.grid(column=0, row=1)
txt.focus() #place cursor auto
def clicked():
number_dirty = txt.get()
tries = int(number_dirty)
playGame(tries)
btn = Button(window, text="Start", command=clicked)
btn.grid(column=0, row=2)
window.geometry('800x600')
window.mainloop()
def playGame(tries):
number_of_tries = int(tries)
number = random.randint(1,100)
higher_notification = "Number is HIGHER"
lower_notification = "Number is LOWER"
game_window = Tk()
game_window.title("Game Window")
lbl = Label(game_window, text="Guess numbers between 1 and 100, you have %s tries !" %(number_of_tries), font=("",14))
lbl.grid(column=0, row=0)
txt = Entry(game_window, width=10)
txt.grid(column=0, row=1)
txt.focus()
print(number)
print(number_of_tries)
def clicked():
user_input = txt.get()
compareNumbers(number, user_input)
btn_try = Button(game_window, text="Try!", command="clicked")
btn_try.grid(column=0, row=2)
def compareNumbers(number, user_input):
if user_input == number:
messagebox.showinfo('You have won!', 'Right! the number was %s ' %(number))
else:
if user_input > number:
lbl.configure(lower_notification)
number_of_tries -1
else:
lbl.configure(higher_notification)
number_of_tries -1
game_window.geometry('600x600')
game_window.mainloop()
initGame()
在第一个屏幕(initGame)上一切正常,当我单击按钮时,我确实得到了第二个屏幕,它正常显示所有对象。当我单击游戏屏幕上的按钮时,我根本没有收到任何反馈,什么也没有发生。
我错过了什么?
非常感谢你 !
解决方案
问题出在这一行:
btn_try = Button(game_window, text="Try!", command="clicked")
请注意,“单击”命令位于引号内,因此是一个字符串,而不是您尝试引用的方法。你想要的是:
btn_try = Button(game_window, text="Try!", command=clicked)
推荐阅读
- reactjs - 如何在 Create React App 的 DevTools profiler 中获取到源文件的正确链接?
- javascript - 当合并流计数超过 17 时,Gulp 合并流未在异步函数中触发“完成”事件
- python - 如何将动态嵌套 json 转换为 csv?
- pytorch - AllenNLP 多任务模型:保持新磁头的编码器权重
- python - 特定类别的产品列表在一个共享的 html 页面中
- java - 如何在junit中模拟setFirstResult()setMaxResult()
- java - Embeddable 为空,因此审核不起作用
- java - 尝试通过 java XSSFWorkbook 访问文件时出现“无法打开指定文件:......xlsx”
- angular - 在 Angular platform-browser-dynamic 中指定引导程序版本
- prolog - 如何在 Prolog 中返回年差?