2017-04-15 80 views
0

我想知道原因以及如何解决问题?谢谢。为什么我输入其中一个时,我的所有tkinter输入小部件都会填满?

import Tkinter 

def next_screen(): 
    input.place_forget() 
    search.place_forget() 
    account() 

def account(): 
    items = ["Username", "Password"] 
    details = Tkinter.LabelFrame(main, text = "Account Details") 
    details.pack(fill = "both", expand = "yes") 
    for item in items: 
     frame = Tkinter.Frame(details) 
     frame.pack(side = "top") 
     entry = Tkinter.Entry(frame, show = "*", textvariable = "StringVar") 
     entry.pack(side = "right") 
     label = Tkinter.Label(frame, text = item, padx = 15, pady = 15, width = 10) 
     label.pack(side = "left") 


main = Tkinter.Tk() 
main.title("Test") 
main.geometry("400x300") 
input = Tkinter.Button(main, text = "Input", command = next_screen) 
search = Tkinter.Button(main, text = "Search") 
input.place(height = 70, width = 90, x = "55", y = "105") 
search.place(height = 70, width = 90, x = "255", y = "105") 
main.mainloop() 

我想了解tkinter并尝试做出一些东西。使用这些代码,我试图在第一帧创建两个按钮,当输入按下时,它会忘记当前的两个按钮,并显示一个新的图层,其中有两个输入小部件及其标签。当我尝试运行它并键入一个入口小部件时,所有入口小部件都被填充。

回答

0

它这样做是因为他们都共享如果你是刚开始为textvariable

相同的值,不使用textvariable。它只是需要一些高级功能。

另外,我强烈建议在开始时不要使用place。学习grid和/或pack,它们更加灵活,并且使它们更容易使用户界面在不同分辨率和字体的不同系统上运行时能够很好地响应。

相关问题