Error: _tkinter.TclError: cannot use geometry manager grid inside . which already has slaves managed by pack
当我改变到
user.grid(row=0, column=0)
password.grid(row=1, column=0)
user.pack(row=0, column=0)
password.pack(row=1, column=0)
它正在抛出一个错误:
_tkinter.TclError: bad option "-row": must be -after, -anchor, -before, -expand, -fill, -in, -ipadx, -ipady, -padx, -pady, or -side
发布于 2022-01-09 04:38:51
你不能把pack
和grid
混在一起。
警告:不要将网格混合在同一个主窗口中。Tkinter会很高兴地在你的余生中努力谈判一个双方都满意的解决方案。与其等待,不如关闭应用程序,然后再看看您的代码。一个常见的错误是对某些小部件使用错误的父级。
我会说选择grid
函数是因为选择每个小部件的位置比较容易。因此,将l1.pack()
更改为l1.grid(row=0, column=0)
(将0替换为要放置它的行和列)。
例如:
from tkinter import *
root = Tk()
root.geometry("700x400") # Title
root.title("Dance Admission Form") # Label
l1 = Label(text="Admission Form", font="Arial 15 bold")
l1.grid(row=0, column=0)
user = Label(root, text="Username")
password = Label(root, text="Password")
user.grid(row=1, column=0)
password.grid(row=2, column=0)
root.mainloop()
或居中版本:
from tkinter import *
root = Tk()
root.geometry("700x400") # Title
root.title("Dance Admission Form") # Label
l1 = Label(text="Admission Form", font="Arial 15 bold")
l1.grid(row=0, column=0)
root.columnconfigure(0, weight=1)
user = Label(root, text="Username")
password = Label(root, text="Password")
user.grid(row=1, column=0)
password.grid(row=2, column=0)
root.mainloop()
https://stackoverflow.com/questions/70638441
复制相似问题