首页 > 解决方案 > Tkinter:如何访问每个字符的控制变量字符?

问题描述

你好_,我对 Python 很陌生,如果我的标题不是那么清楚,我发现 Tkinter 很抱歉,提前感谢。

我想要做的是在一个条目小部件中输入一些数字,然后根据公式将它们打印在另一个条目小部件中。但是我希望修改每个数字,例如,如果公式是 x 到 x**2,如果我输入 12,我期望 14 而不是 144。

我怎样才能写一个回调函数来实现呢?

我的代码显然返回数字 ** 2 而不是每个数字 ** 2 :

import tkinter


def CallBack(*args):

    Entry_variable1.set(Entry_variable.get() ** 2)



Appli = tkinter.Tk()
Appli.title("x to x**2")

Entry_variable = tkinter.IntVar()
Entry_variable1 = tkinter.IntVar()
Entry_variable.trace("w", CallBack)

Entry = tkinter.Entry(Appli, textvariable=Entry_variable)
Entry1 = tkinter.Entry(Appli, textvariable=Entry_variable1)




Entry.pack()
Entry1.pack()

Appli.mainloop()

标签: pythontkinter

解决方案


好吧,如果你很难理解列表理解,你可以使用一个简单的 for 循环来迭代stringvar().

def CallBack(*args):
    Entry_variable1.set("") # reset the second value in the input,And both of variable is Stringvar()
    for i in Entry_variable.get(): # use for loop through it.
        Entry_variable1.set(Entry_variable1.get()+str(int(i)**2)) # each of them **2 and add it to the variable.

推荐阅读