Python 在通过tkinter小部件调用另一个类之后,如何保持变量的值?
我是tkinter的新手,我正在努力处理我的代码,它应该在tkinter中启动一个按钮和输入框,然后等待用户输入“train”,单击按钮,并将1添加到训练变量中,删除所有小部件。然后,代码应该返回while循环,重新启动小部件并重复,同时保存训练变量。但是,当我运行代码时,循环会经过一次,即使用户多次输入“train”,变量也会保持在1。我已尝试将变量training设置为IntVar()类型,但无法在“training=training+1”行中为其添加1。有什么想法吗Python 在通过tkinter小部件调用另一个类之后,如何保持变量的值?,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我是tkinter的新手,我正在努力处理我的代码,它应该在tkinter中启动一个按钮和输入框,然后等待用户输入“train”,单击按钮,并将1添加到训练变量中,删除所有小部件。然后,代码应该返回while循环,重新启动小部件并重复,同时保存训练变量。但是,当我运行代码时,循环会经过一次,即使用户多次输入“train”,变量也会保持在1。我已尝试将变量training设置为IntVar()类型,但无法在“training=training+1”行中为其添加1。有什么想法吗 import tkin
import tkinter as tk
def main():
training=0
x="train"
while(x=="train"):
x=tk.Entry(root)
x.pack()
tr=tk.Button(root, text='Ok', command=lambda: amount(training,x.get()))
tr.pack()
def amount(training,x):
if(x=="train"):
training=training+1
list = root.slaves()
for slave in list:
slave.forget()
main()
一旦你看到另一个问题,你可以做同样的事情并调用intvart的“set”函数谢谢,我已经解决了,但是我的while循环不重复的问题仍然存在。你的循环只运行一次的原因是你做了
while(x==“train”):
,然后将x
从字符串'train'
更改为条目
,这样它就不再等于'train'
。但是如果你没有误用同一个变量来表示这两个不同的东西,它将永远循环,创建尽可能多的条目和按钮,直到引发异常。我认为你真的需要阅读关于tkinter的教程,因为这远远不是有意义的代码,所以很难解释如何“修复”它。我理解,我不希望我的循环永远持续下去。我希望变量最初等于“train”,然后我希望每次用户单击“ok”按钮时都检查我的输入小部件,并且他们输入的任何内容都应设置为等于x变量。然后,如果新的x变量值仍然等于“train”,我希望循环重复,从而触发amount函数,使1添加到训练变量中,如果用户愿意,他们可以再次输入“train”,从而再次触发amount函数。对不起,我一定解释得很糟糕。