首页 > 解决方案 > 有没有办法在 tkinter 的 for 循环中创建一个 get 方法

问题描述

我正在编写一个代码来使用 for 循环,里面有一个框架,里面还有一个 get 方法。

for question, answer_choice, correct_choice, correct_answer in zip(questions, answer_choices, correct_choices, correct_answers):
    #frameQ=Frame(root)
    frameQ=Frame(root)
    frameQ.grid( row=rn , columnspan=4, sticky="w")
    Entry_answer=Entry(frameQ)
    Entry_answer.grid(row=3, column=0, sticky ="w")
    user_answer=Entry_answer.get()  #===this is not working

标签: python-3.xtkinter

解决方案


tkinter 有一个很好的方法来处理输入。它引入了新的变量类型。例如,您可以在这种情况下使用 StringVar()。StringVar() 具有在更新时更新与它们相关的任何内容的特性。例如,

var = StringVar()
entry = Entry(frame, textvariable=var)
entry.grid(column=x, row=y)

label = Label(frame, textvariable=var)
label.grid(column=x, row=y)

在这种情况下,当您使用条目更新 var 时,标签会自动更新。我想这就是你的目标。如您所见,我使用 textvariable 选项来执行此操作。您可以在官方 tkinter 文档中查看小部件的所有其他选项。我还建议你去这个网站上它有一个很棒的教程来学习 tkinter。最后,你忘了说你希望框架在哪一列。这也可以解决一个问题。


推荐阅读