Python 子系统内的打包和网格';特金特的孩子们
我知道你不能在同一个主机中混合使用tkinter的grid()和pack()方法。然而,我的理解是,在一个框架内使用pack和在另一个框架内使用grid是有效的,即使这两个框架共享一个共同的父框架?这是我在主根目录中打包的一个框架的代码,为什么我会收到关于混合打包和网格的错误?对不起,如果这只是我盲目地错过了混合包装和网格的规则Python 子系统内的打包和网格';特金特的孩子们,python,tkinter,Python,Tkinter,我知道你不能在同一个主机中混合使用tkinter的grid()和pack()方法。然而,我的理解是,在一个框架内使用pack和在另一个框架内使用grid是有效的,即使这两个框架共享一个共同的父框架?这是我在主根目录中打包的一个框架的代码,为什么我会收到关于混合打包和网格的错误?对不起,如果这只是我盲目地错过了混合包装和网格的规则 Class Login(tk.Frame): def __init__(self, master): super().__init__(mas
Class Login(tk.Frame):
def __init__(self, master):
super().__init__(master)
self.config()
rightFrame = tk.Frame(self).pack(side='right') #Using PACK
leftFrame = tk.Frame(self).pack(side='left') #Using GRID
# RIGHT SIDE #
self.photo = tk.PhotoImage(file='temp.png')
label = tk.Label(rightFrame, image=self.photo)
label.pack(side='right')
# LEFT SIDE #
label = tk.Label(leftFrame, text="Grade Predictor")
label.config(font=("Courier 22 bold"))
label.grid(row=0, column=0)
self.usernameBox = tk.Entry(leftFrame)
self.usernameBox.grid(row=1, column=0)
self.pack(fill='both')
您正在创建左侧和右侧框架,如下所示:
rightFrame = tk.Frame(self).pack(side='right')
将None
分配给rightFrame
作为pack()
返回None
如果将它们创建为:
rightFrame = tk.Frame(self)
rightFrame.pack(side='right')
它工作正常。您正在创建左帧和右帧,如下所示:
rightFrame = tk.Frame(self).pack(side='right')
将None
分配给rightFrame
作为pack()
返回None
如果将它们创建为:
rightFrame = tk.Frame(self)
rightFrame.pack(side='right')
很好用。非常感谢!没有意识到。对不起,@figbeam你知道为什么在上面的代码中,如果我在它的pack方法中给leftFrame一个fill='both',它似乎没有填充y轴吗?对我来说很有用。尝试为框架提供背景颜色,以查看其范围。已具有背景颜色。如果我将边设为左,它将填充y,但在两帧之间留有空间,如果我将边设为默认值,它将填充x,但不填充y?知道为什么吗?我不太清楚我是否完全理解了。不过,我可以向您指出一个非常好的描述,说明pack将如何根据您想要放置的位置来分发子小部件:。通读一下,看看它是否能更好地解释包装。非常感谢!没有意识到。对不起,@figbeam你知道为什么在上面的代码中,如果我在它的pack方法中给leftFrame一个fill='both',它似乎没有填充y轴吗?对我来说很有用。尝试为框架提供背景颜色,以查看其范围。已具有背景颜色。如果我将边设为左,它将填充y,但在两帧之间留有空间,如果我将边设为默认值,它将填充x,但不填充y?知道为什么吗?我不太清楚我是否完全理解了。不过,我可以向您指出一个非常好的描述,说明pack将如何根据您想要放置的位置来分发子小部件:。通读一下,看看它是否能更好地解释包装。