代码:
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()
。
请注意,您的label
是None
,如果您计划重复使用标签,它可能会在以后导致多个错误。因此,理想的方式是在下一行上进行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";电网管理器