Python 3.x tkinter不同的条目采用相同的值

Python 3.x tkinter不同的条目采用相同的值,python-3.x,tkinter,Python 3.x,Tkinter,在使用tkinter进行一些练习时,我遇到了这个问题。我想设置4个不同的条目,其中用户必须键入4个不同的值。问题是,当我尝试它时,我在任何条目中键入一个值,该值会自动转到所有条目 i、 e:我在四个条目中的任何一个条目中输入了一个4,所有条目都会得到一个4。 这是迄今为止的代码: from tkinter import * class Application(Frame): def Check(self): print("check result") de

在使用tkinter进行一些练习时,我遇到了这个问题。我想设置4个不同的条目,其中用户必须键入4个不同的值。问题是,当我尝试它时,我在任何条目中键入一个值,该值会自动转到所有条目

i、 e:我在四个条目中的任何一个条目中输入了一个4,所有条目都会得到一个4。

这是迄今为止的代码:

from tkinter import *


class Application(Frame):
    def Check(self):
        print("check result")

    def createWidgets(self):

        self.tile1.pack(side=RIGHT, padx=20, pady=10)
        self.tile2.pack(side=RIGHT, padx=20, pady=10)
        self.tile3.pack(side=RIGHT, padx=20, pady=10)
        self.tile4.pack(side=RIGHT, padx=20, pady=10)
        self.QUIT.pack({"side": "left", "ipadx": 20, "padx": 10, "pady": 20})
        self.check.pack({"side": "left", "ipadx": 20, "padx": 10, "pady": 20})
    '''
    def callback(self,tile1,tile2,tile3,tile4):
        self.tile1.set(self.tile1.get()[:1])
        self.tile2.set(self.tile2.get()[:1])
        self.tile3.set(self.tile3.get()[:1])
        self.tile4.set(self.tile4.get()[:1])
    '''
    def __init__(self, master=None):
        Frame.__init__(self, master)

        self.num1 = int(0)
        self.num2 = int(0)
        self.num3 = int(0)
        self.num4 = int(0)

        self.tile1 = Entry(master=root, textvariable=self.num1, width=1)
        self.tile2 = Entry(master=root, textvariable=self.num2, width=1)
        self.tile3 = Entry(master=root, textvariable=self.num3, width=1)
        self.tile4 = Entry(master=root, textvariable=self.num4, width=1)

        self.QUIT = Button(self)
        self.QUIT["text"] = "QUIT"
        self.QUIT["fg"] = "red"
        self.QUIT["command"] = self.quit

        self.check = Button(self)
        self.check["text"] = "Check",
        self.check["command"] = self.Check

        self.pack()
        self.createWidgets()


root = Tk()
app = Application(master=root)
app.master.title("Insertar titol")
app.master.maxsize(500, 500)
app.mainloop()
root.destroy()

问题在于
textvariable
属性使用了相同的值和错误的值类型。
textvariable
属性需要tkinter变量之一的实例,例如
StringVar
IntVar

本质上,您告诉每个
条目
小部件将其数据保存在名为
0
(零)的变量中。由于每个小部件都使用相同的变量名,因此这些小部件本质上是链接的,因此一个小部件中的更改会影响所有小部件


解决方案是为每个小部件使用
StringVar
IntVar
的不同实例,而不是文本零

@GBOFI:并不是缓存小整数。很简单,当它需要使用一个特殊的tkinter变量时,它会使用一个整数。@BryanOakley噢,我几乎是对的。看起来你不想结束这个问题,对吗?@GBOFI:我找不到好的副本。我很确定有一个,但我回答的时间比找到一个合适的副本要少。你链接到的那个似乎不太接近,不足以成为一个好的副本,因为问题的根源是对
textvariable
使用
int
。我整理了太多以前的评论,我链接的问题谢谢你的回答。我知道以前一定有人问过这个问题,但我很难选择一个准确的标题,这就是为什么我认为我在前面的问题中没有找到答案。无论如何,谢谢你们。