Tkinter:为什么.grid()方法会出错



代码:

import tkinter as tk
import random as rd
number = rd.randint(10,51)
trial = 0
chance = 0
window = tk.Tk()
window.title("Guess")
label = tk.Label(window, text="Guess a number that can be anything from '10' to '50', you have 5 chances !!!n", font=("Arial Bold",20)).pack()
bt = tk.Button(window, text="Enter")
bt.grid(column=3, row=3)
window.geometry('2000x1000')
window.mainloop()

错误:_tkinter.TclError: cannot use geometry manager grid inside . which already has slaves managed by pack

如果我试图删除"label"中的.pack((,文本不会加载,并且按钮仍然保持在(0,0(,同时没有错误

错误很明显,不能在容器或窗口中混合使用pack()grid()。在这里,您在label上使用pack(),在btn上使用grid()。因此,将label更改为grid()。或者将bt.grid(..)更改为bt.pack()


请注意,您的labelNone,如果您计划重复使用标签,它可能会在以后导致多个错误。因此,理想的方式是在下一行上进行grid()/pack()

label = tk.Label(window, text="Guess a number that can be anything from '10' to '50', you have 5 chances !!!n", font=("Arial Bold",20))
label.pack()

如果你不打算重用它,那么就不要麻烦给它一个变量名。

您所要做的就是将标签更改为也使用网格而不是包,我更改了下面的行:

label = tk.Label(window, text="Guess a number that can be anything from '10' to '50', you have 5 chances !!!n", font=("Arial Bold",20))
label.grid()

您需要使用网格或包,而不是两者都使用。根据我的经验,我就是这么想的。

错误:_tkinter.TclError:无法在内部使用几何图形管理器网格。已经有由pack管理的从属它说它是由pack管理的,所以你需要使用packmanager;OR";电网管理器

相关内容

  • 没有找到相关文章

最新更新