我试图将Entry字段值传递给第二个函数,但我只得到一个空字符串。谁能告诉我我失踪了什么?这是我的代码:
def fenetre_changer_nom_joueur(self,joueur):
self.changer_nom_main = Tk()
self.changer_nom_main.geometry('300x200')
self.string_nom_joueur = StringVar()
Entry(self.changer_nom_main, textvariable=self.string_nom_joueur).grid(row=2, column=2, sticky=W)
Button(self.changer_nom_main, text="Enregistrer",command = lambda: self.changer_nom_joueur(joueur), padx=10,
pady=10).grid(row=3, column=1, sticky=W)
Button(self.changer_nom_main, text="Fermer", width=13,
command=lambda: self.fermer_fenetre(self.changer_nom_main), padx=10,
pady=10).grid(row=3, column=2, sticky=W)
self.changer_nom_main.mainloop()
def changer_nom_joueur(self, joueur):
"""
This is where I'm tring to get the Entry field value. But the .get() return an emptry string
"""
temp = self.string_nom_joueur.get()
joueur.nom = temp
答案 0 :(得分:-1)
Entry(self.changer_nom_main, textvariable=self.string_nom_joueur).....
此行将textvariable设置为self.string_nom_joueur。我想你想要做的是相反的。您希望self.string_nom_joueur是textvariable。
首先需要将Entry分配给变量,即:
self.entrynamefield = Entry(self.changer_nom_main, textvariable=self.string_nom_joueur).....
然后你需要使用.set()方法来设置self.string_nom_joeuer:
self.string_nom_joeuer.set(self.entrynamefield.get())
设置完字符串变量后,你的函数changer_nom_joueur会有“.get()”