Python tkinter顶层窗口内的输入框
我已经编写了一个代码来显示tkinter中顶级窗口中的Entry小部件,但在运行它时它并没有显示任何内容。 下面是我调用顶级窗口的代码:Python tkinter顶层窗口内的输入框,python,tkinter,Python,Tkinter,我已经编写了一个代码来显示tkinter中顶级窗口中的Entry小部件,但在运行它时它并没有显示任何内容。 下面是我调用顶级窗口的代码: #file: app.py # enter new racer btnNewRacer = Button(app, text = "Enter New Racer", style = 'W.TButton', command = EnterRacer) btnNewRacer.grid(row = 0, column = 0, pady
#file: app.py
# enter new racer
btnNewRacer = Button(app, text = "Enter New Racer", style = 'W.TButton', command = EnterRacer)
btnNewRacer.grid(row = 0, column = 0, pady = 50, padx = 50)
这是我为Entry widget编写的代码:
#file: new_racer.py
def EnterRacer():
# Toplevel object which will
# be treated as a new window
racerWindow = Toplevel()
racerWindow['background']='#2A3132'
# sets the title of the
# Toplevel widget
racerWindow.title("Enter New Racer")
# sets the geometry of toplevel
racerWindow.geometry("700x500")
# A Label widget to show in toplevel
Label(racerWindow, text ="Enter new racer window").pack()
Label(racerWindow, text="First Name").pack()
Label(racerWindow, text="Last Name").pack().grid(row=5)
entry_1 = Entry(racerWindow)
entry_1.pack()
entry_1.grid(row=5)
当我运行app.py并单击“输入新赛车手”按钮时,我没有看到任何输入小部件。有人能帮忙吗?谢谢。这里的问题是,您不能将
.pack()
和.grid()
组合使用。您只需使用其中一个
您可以将功能更改为:
用于.pack()
# Toplevel object which will
# be treated as a new window
racerWindow = Toplevel()
racerWindow['background']='#2A3132'
# sets the title of the
# Toplevel widget
racerWindow.title("Enter New Racer")
# sets the geometry of toplevel
racerWindow.geometry("700x500")
# A Label widget to show in toplevel
Label(racerWindow, text ="Enter new racer window").pack()
Label(racerWindow, text="First Name").pack()
Label(racerWindow, text="Last Name").pack()
entry_1 = Entry(racerWindow)
entry_1.pack()
def EnterRacer():
# Toplevel object which will
# be treated as a new window
racerWindow = Toplevel()
racerWindow['background']='#2A3132'
# sets the title of the
# Toplevel widget
racerWindow.title("Enter New Racer")
# sets the geometry of toplevel
racerWindow.geometry("700x500")
# A Label widget to show in toplevel
Label(racerWindow, text ="Enter new racer window").grid(row=0,column=0)
Label(racerWindow, text="First Name").grid(row=0,column=1)
Label(racerWindow, text="Last Name").grid(row=0,column=2)
entry_1 = Entry(racerWindow)
entry_1.grid(row=1,column=0,columnspan=3,sticky=E+W)
用于.grid()
# Toplevel object which will
# be treated as a new window
racerWindow = Toplevel()
racerWindow['background']='#2A3132'
# sets the title of the
# Toplevel widget
racerWindow.title("Enter New Racer")
# sets the geometry of toplevel
racerWindow.geometry("700x500")
# A Label widget to show in toplevel
Label(racerWindow, text ="Enter new racer window").pack()
Label(racerWindow, text="First Name").pack()
Label(racerWindow, text="Last Name").pack()
entry_1 = Entry(racerWindow)
entry_1.pack()
def EnterRacer():
# Toplevel object which will
# be treated as a new window
racerWindow = Toplevel()
racerWindow['background']='#2A3132'
# sets the title of the
# Toplevel widget
racerWindow.title("Enter New Racer")
# sets the geometry of toplevel
racerWindow.geometry("700x500")
# A Label widget to show in toplevel
Label(racerWindow, text ="Enter new racer window").grid(row=0,column=0)
Label(racerWindow, text="First Name").grid(row=0,column=1)
Label(racerWindow, text="Last Name").grid(row=0,column=2)
entry_1 = Entry(racerWindow)
entry_1.grid(row=1,column=0,columnspan=3,sticky=E+W)
这只是网格化的一种方式,您可以通过更改行和列参数来使用自己的方式。如果有任何疑问,请告诉我:D
干杯我不知道这是否正确,但我从未见过
.pack().grid()
它有什么作用?你是在包装它,然后把它网格化,就做一个?如果我没有错的话,你也没有看到你的“姓氏”标签?这可能是个错误,但我可以看到所有的三个标签。只有条目小部件未显示@CoolCloudI立即获得了AttributeError:“非类型”对象没有属性“网格”
,您正在混合pack
和grid
,并尝试在已打包的对象上执行grid
。您想放置它还是使用网格?还是打包?错误:AttributeError:'NoneType'对象没有属性'grid'
欢迎使用SO,快乐编码:D