Tkinter - 无法理解为什么在两个输入框中同时输入数据。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tkinter - 无法理解为什么在两个输入框中同时输入数据。相关的知识,希望对你有一定的参考价值。

我是Tkinter的新手,目前正在写一段代码,要在第三个文本框中显示2个数字的总和,但当我在文本框1中输入整数值时,它同时在文本框2中也输入了相同的值。但是当我在文本框1中输入一个整数值时,它同时在文本框2中也输入了同样的值。很明显,这两个数值都被存储在同一个变量中。代码在这里。

def showSum(fnum,lnum):
try:
    some_var = int(fnum)
except ValueError:
    print("Error. Not an integer number!")
try:
    some_var = int(lnum)
except ValueError:
    print("Error. Not an integer number!")
sum = fnum+lnum
sum_label['text'] = str(sum)


FirstNumLabel = Label(tkWindow, text="Enter Num 1: ").grid(row=0, column=0)
FirstNum = 0
FirstNumEntry = Entry(tkWindow, textvariable=FirstNum).grid(row=0, column=1)

LastNumLabel = Label(tkWindow, text="Enter Num 2: ").grid(row=1, column=0)
LastNum = 0
LastNumEntry = Entry(tkWindow, textvariable=LastNum).grid(row=1, column=1)

showSum = partial(showSum, FirstNum, LastNum)
showButton = Button(tkWindow, text="Show", command=showSum).grid(row=3, column=1)

所以当我输入第一个数字时,它也会自动在第二个数字文本框中输入相同的数字。反之亦然。

此外,和函数显示0为上述整数的和。

我尝试在谷歌上搜索,但没有找到任何解决方案。如果有任何帮助,我将感激不尽。

答案

textvariable 选项必须使用一个特殊的 tkinter 变量 StringVar, IntVar, BooleanVarDoubleVar. StingVar 是目前最常见的。

因为您使用的是一个整数,所以两个入口部件都有它们的 textvariable 设为 0. 这将创建一个名为 0 每当小组件的值发生变化时就会更新。由于它们共享相同的内部变量,所以它们都共享相同的值。

以上是关于Tkinter - 无法理解为什么在两个输入框中同时输入数据。的主要内容,如果未能解决你的问题,请参考以下文章

tkinter基础-输入框文本框

Python怎么将tkinter 输入框中输入的字符串内容转换为 整数类型?

Tkinter-在输入框中输入后未返回用户输入

python tkinter 如何获取文本框中的内容?

更改 tkinter 列表框中的项目顺序

在 Tkinter 文本框中显示从串行端口读取的数据时,发出处理数据