【发布时间】:2017-11-22 23:53:58
【问题描述】:
我有一个按钮来保存条目中的内容,并且由于某种原因,它没有将其正确保存到函数的列表外部中,就像函数 Submit( ),它记得输入值就好了。 这是设置条目的功能部分:
Q8answer = Entry(r)
Q8answer.config(fg = "blue",bg = "white",font = ("Arial",20),)
Q8answer.place(relx = 0.5,rely = 0.5,anchor = "center")
submit = Button(r, text = "Submit THIS Answer",command = Submit)
submit.place(relx = 0.5, rely = 0.8, anchor = "center")
这就是名为 Submit() 的函数:
def Submit():
answers[7] = str(Q8answer.get())
print(answers)
顺便说一句,我确实全球化了所有需要的变量,因为其他答案是带有按钮问题的多项选择( answers[0] 到 answers[6] ),都可以正常工作并正确保存到列表中。
编辑:这里有更多上下文:
Q8answer.place_forget()
submit.place_forget()
Q8answer = Entry(r)
Q8answer.config(fg = "blue",font = ("Arial",20),)
submit = Button(r, text = "Submit THIS Answer", command = Submit() )
Amode = 0
Bmode = 0
Cmode = 0
Dmode = 0
Abutton.config(image = unselected)
Bbutton.config(image = unselected)
Cbutton.config(image = unselected)
Dbutton.config(image = unselected)
if mode == 1:
if questionNumber < len(questions):
questionNumber += 1
if questionNumber == 8:
Correct()
elif questionNumber == 7:
Abutton.place_forget()
Bbutton.place_forget()
Cbutton.place_forget()
Dbutton.place_forget()
Alabel.place_forget()
Blabel.place_forget()
Clabel.place_forget()
Dlabel.place_forget()
Number = Label(r,text = "Question " + str(questionNumber + 1))
Number.config(fg = "blue",bg = "grey", font = ("Arial",15))
Number.place(relx = 0.02, rely = 0.02 )
question = questions[questionNumber]
Question.place_forget()
Question = Label(r,text = question)
Question.config(fg = "blue",bg = "grey")
Question.config(font = ("Arial",20))
Question.place(relx = 0.5, rely = 0.15, anchor = "center")
Q8answer = Entry(r)
Q8answer.config(fg = "blue",bg = "white",font = ("Arial",20),)
Q8answer.place(relx = 0.5,rely = 0.5,anchor = "center")
submit = Button(r, text = "Submit THIS Answer",command = Submit)
submit.place(relx = 0.5, rely = 0.8, anchor = "center")
else:
Q8answer.place_forget()
submit.place_forget()
在 else 语句之后,它与此没有任何关系。
【问题讨论】:
-
你告诉我们它不能做什么。它做什么?您的打印声明打印什么?
-
len(answers)返回什么? -
如果能得到minimal example 的帮助,那就太好了。你能提供更多细节吗?
-
打印语句只是用来告诉我它是否有效。在函数内部,它可以很好地打印出答案列表,但是在外部,当我打印它时,它不包括数字 7,即带有条目小部件的那个。并且 len(answers) 返回列表答案的长度。
-
command=需要回调 - 这意味着没有()的函数名称 - 但在最后的代码中你有command = Submit()。应该是command=Submit
标签: python list function tkinter