Python 3.x Can';t使用Tkinter在第二个窗口上放置按钮
我不知道为什么当我放置了3个按钮来显示时,窗口会被创建为一无所有。这是它发生的函数:Python 3.x Can';t使用Tkinter在第二个窗口上放置按钮,python-3.x,tkinter,Python 3.x,Tkinter,我不知道为什么当我放置了3个按钮来显示时,窗口会被创建为一无所有。这是它发生的函数: def Click(): if input_fieldContra.get() == contraseña: vent_iniciada = Tk() root.withdraw() vent_iniciada.geometry("250x200") vent_iniciada.mainloop() nuevoB = Button(vent_iniciada, text="Nuevo", comman
def Click():
if input_fieldContra.get() == contraseña:
vent_iniciada = Tk()
root.withdraw()
vent_iniciada.geometry("250x200")
vent_iniciada.mainloop()
nuevoB = Button(vent_iniciada, text="Nuevo", command=NuevoBot)
abrirB = Button(vent_iniciada, text="Abrir", command=AbrirBot)
guardarB = Button(vent_iniciada, text="Guardar", command=GuardarBot)
nuevoB.grid(vent_iniciada, row=0, column=0)
abrirB.grid(vent_iniciada, row=2, column=0)
guardarB.grid(vent_iniciada, row=3, column=0)
首先,.grid()
不会出现在父窗口上。当使用网格时,您应该在创建小部件时在小部件内定义父窗口。
.grid()
选项必须为-column、-columnspan、-in、-ipadx、sticky等
其次,如果将vent_iniciada.mainloop()
移动到代码底部,它应该可以工作。发生的情况是代码正在执行:
vent\u iniciada=TK()
root.draw
vent_iniciada.几何结构(“250x200”)
这是你应该把你的按钮放在这里,这样代码就能把它们读入窗口
最后,在网格化小部件之后,您告诉程序mainloop所有内容
vent\u iniciada.mainloop()
首先,.grid()
不会出现在父窗口上。当使用网格时,您应该在创建小部件时在小部件内定义父窗口。
.grid()
选项必须为-column、-columnspan、-in、-ipadx、sticky等
其次,如果将vent_iniciada.mainloop()
移动到代码底部,它应该可以工作。发生的情况是代码正在执行:
vent\u iniciada=TK()
root.draw
vent_iniciada.几何结构(“250x200”)
这是你应该把你的按钮放在这里,这样代码就能把它们读入窗口
最后,在网格化小部件之后,您告诉程序mainloop所有内容
vent\u iniciada.mainloop()
您必须移动:
vent_iniciada.mainloop()
到函数的最后一行,您必须移动:
vent_iniciada.mainloop()
到函数的最后一行,应避免使用Tk()
的多个实例。将vent\u-iniciada
更改为Toplevel()
并删除vent\u-iniciada.mainloop()
。应避免使用Tk()
的多个实例。将vent\u-iniciada
更改为Toplevel()
并删除vent\u-iniciada.mainloop()
。