-1

我正在编写一个程序,以便用户可以在一个窗口中输入他的详细信息,然后一个新窗口会显示输出。但是,由于某种原因,没有打印第二个窗口中的标签。

from tkinter import *

window = Tk()    
window.title("Login")
window.geometry("500x500")
window.resizable(0,0)
l = Label(window, text="Name: ", font="Roman 20 bold",padx=10,pady=10)
l.grid(row=0,column=0)
l = Label(window, text="Password: ", font="Roman 20 bold",padx=10,pady=10)
l.grid(row=1,column=0)
e1 = Entry(window, font="Roman 20 bold")
e1.grid(row=0,column=1)
e2 = Entry(window, font="Roman 20 bold",show="*")
e2.grid(row=1,column=1)

def test():
    a= e1.get()
    b= e2.get()
    mess = Tk()
    mess.title("Output")
    mess.geometry("500x500")
    mess.resizable(0,0)

m= StringVar()
m.set("Name: "+a)
l = Label(mess, textvariable=m, font="Roman 20 bold",padx=10,pady=10)
l.grid()

n= StringVar()
n.set("Password: "+b)
l = Label(mess, textvariable=n, font="Roman 20 bold",padx=10,pady=10)
l.grid(row=1,column=0)
mess.mainloop()

b = Button(window,text="Click",font="Roman 15 bold",width=15,command= test)
b.grid(row=2,column=0)

window.mainloop()

我不认为 get() 方法有问题,因为我能够打印在 Python shell 屏幕上获得的值。所以,我认为这可能是 label() 的问题,尽管我可能错了。

4

1 回答 1

0

您没有更新标签,l.configure(text="Password: " + c")因此它采用在开始时设置的值,即无。

您还将 b 定义为按钮,因此您必须将条目 get 定义为另一个。

我还删除了字符串 car 因为我发现它没有必要。

更新代码:

from tkinter import *

window = Tk()    
window.title("Login")
window.geometry("500x500")
window.resizable(0,0)
l = Label(window, text="Name: ", font="Roman 20 bold",padx=10,pady=10)
l.grid(row=0,column=0)
l = Label(window, text="Password: ", font="Roman 20 bold",padx=10,pady=10)
l.grid(row=1,column=0)
e1 = Entry(window, font="Roman 20 bold")
e1.grid(row=0,column=1)
e2 = Entry(window, font="Roman 20 bold",show="*")
e2.grid(row=1,column=1)


def test():
    a = e1.get()
    c = e2.get()
    mess = Tk()
    mess.title("Output")
    mess.geometry("500x500")
    mess.resizable(0,0)
    l2 = Label(mess, font="Roman 20 bold",padx=10,pady=10)
    l2.grid()

    l = Label(mess, font="Roman 20 bold",padx=10,pady=10)
    l.grid(row=1,column=0)
    l.config(text="Password: " + c)
    l2.config(text="Name: " + a)
    mess.mainloop()


b = Button(window,text="Click",font="Roman 15 bold",width=15,command= test)
b.grid(row=2,column=0)

window.mainloop()
于 2021-03-05T12:21:45.653 回答