我的 tkinter 条目的 .get() 函数什么也没返回,我应该在我的代码上做什么才能实现它。代码如下:


from tkinter import*
from tkinter import messagebox
import os
def accountinfo1():
a = nameentry.get()

info1 = open("Account #1.txt", "w")
info1.write(a)
info1.close()
messagebox.showinfo("Sign Up Process", "Registration Success") 
def newaccount():
global newscreen
newscreen= Tk()
global nameentry
nameentry = StringVar()

labelname=Label(newscreen, text='Enter your Name:')
labelname.pack()
entername=Entry(newscreen, textvariable=nameentry)
entername.pack()
submitbutton = Button(newscreen, text="SUBMIT", command = accountinfo1)
submitbutton.pack()

newscreen.mainloop()
def main_screen():
global mscreen
mscreen=Tk()
addaccountbutton = Button(mscreen, text="Add Account", width = '20', height = '2', command=newaccount)
addaccountbutton.pack(padx=50,pady=50)
mscreen.mainloop()
main_screen()

您的StringVar是不必要的。您需要做的是使条目全局化,因此当您调用accountinfo1()时,您可以直接获得条目的值,而不必使用StringVar。也可以使用Toplevel()而不是第二个Tk()

from tkinter import messagebox
import os
def accountinfo1():
a = entername.get()

info1 = open("Account #1.txt", "w")
print(a)
info1.write(a)
info1.close()
messagebox.showinfo("Sign Up Process", "Registration Success") 
def newaccount():
global entername
global newscreen
newscreen= Tk()
global nameentry

labelname=Label(newscreen, text='Enter your Name:')
labelname.pack()
entername=Entry(newscreen)
entername.pack()
submitbutton = Button(newscreen, text="SUBMIT", command = accountinfo1)
submitbutton.pack()

newscreen.mainloop()
def main_screen():
global mscreen
mscreen=Tk()
addaccountbutton = Button(mscreen, text="Add Account", width = '20', height = '2', command=newaccount)
addaccountbutton.pack(padx=50,pady=50)
mscreen.mainloop()
main_screen()

最新更新