只是第一次弄乱tkinter
,我不知道为什么我的按钮不起作用。基本上,input_grade
应该从value
的{{1}}得到一个entry_for_grades
,然后将其打印在同一quiz_amount
上,但我会一直返回0 >
我抬起头,以为我应该使用window
,但是无论输入什么内容,它都会一直给我0,然后按ok
lambda
答案 0 :(得分:1)
我使用了您的代码并将其制成a Minimal, Reproducible Example(我认为),对我来说很好用。
代码如下:
from tkinter import *
def quiz(quiz_window):
# window(quiz_window)
quiz_window.title('Quiz Grades')
width = quiz_window.winfo_reqwidth()
height= quiz_window.winfo_reqheight()
quiz_window.geometry('{}x{}'.format(width, height))
entry_for_grades = Entry(quiz_window, textvariable=quiz_amount)
entry_for_grades.pack()
grade_amount = Button(quiz_window,text='Ok',command=lambda:see_text(quiz_window)).place(x=85,y=60)
def see_text(window):
Label(window,text=float(quiz_amount.get())).place(x=85,y=90)
if __name__ == '__main__':
quiz_window = Tk()
quiz_amount = IntVar()
quiz(quiz_window)
quiz_window.mainloop()
我唯一想到的问题是,就像Novel
所说的那样,您正在使用多个Tk()
窗口,并试图在这些窗口之间传递变量。
几乎不能使用多个Tk()
窗口,因为您不能在两个Tk()
窗口之间传递信息。改为使用TopLevel()
窗口,信息可以在Tk()
和TopLevel()
窗口之间自由流动。