我正在尝试用Tkinter制作一个使用多个不同窗口的游戏。
然而,当我试图创建一个辅助窗口的布局时,我似乎无法将我的Return to Menu
按钮放在列表框下面,并与左侧对齐。我尝试过使用.pack()
和.grid()
方法,但它们对我没有意义。你知道吗
我试过使用.pack()
:
header = Frame(wn).pack()
title = Label(header, text='Single-Player',font=('Arial bold',20),bg=bgcolor).pack(anchor='center')
footer = Frame(wn).pack(side=BOTTOM)
return_to_menu = Button(footer, text='Return to Main Menu',font=('Arial',16),bg=bgcolor,command=lambda: menu()).pack(side=BOTTOM,padx=20,pady=250)
# body frame (left side)
bodyL = Frame(wn).pack(side=LEFT)
#output box
output = Listbox(bodyL, width=50, font=("Arial", 20)).pack(side=LEFT,padx=15)`
我试过使用.grid()
:
header = Frame(wn).grid(sticky=N)
title = Label(header, text='Single-Player',font=('Arial bold',20),bg=bgcolor).grid(sticky=N+E+W,row=0,column=0)
footer = Frame(wn).grid(sticky=S)
return_to_menu = Button(footer, text='Return to Main Menu',font=('Arial',16),bg=bgcolor,command=lambda: menu()).grid(sticky=S,padx=20,row=0,column=0)
# body frame (left side)
bodyL = Frame(wn).grid(sticky=W)
#output box
output = Listbox(bodyL, width=50, font=("Arial", 20)).grid(sticky=W,padx=15, )`
但是,使用.grid()
不会再将我的标题与屏幕中心对齐。
有没有一种方法可以更有效地把它放在中心-我不喜欢用padx=450
来把它放在中心。
按钮和列表框的情况是,按钮出现在列表框的左侧,而不是底部。我尝试了其他几种方法,比如增加行号,但是我的脚本似乎没有达到我预期的效果。你知道吗
下面是一个示例,说明如何设置特定列和行的权重,以使小部件粘贴到屏幕上的特定位置。你知道吗
使用
grid()
我们需要使用columnconfigure()
和rowconfigure()
来实现这一点。你知道吗这两种方法用于定义当容器增长或收缩时,列或行相对于其周围的列或行的扩展比例。你知道吗
请看下面的例子,如果您有任何问题,请告诉我:
示例:
这里是另一个例子,但这次我有一个框架外的标题标签,这样我们可以更容易地管理标题居中,然后与框架的所有其他内容的工作是分开的标题标签。你知道吗
示例:
要解决注释中的问题,不能在创建容器的同一行上使用
grid()
或任何其他几何体管理器。这将始终导致该帧的变量返回None
,因为几何体管理器在调用时返回None
。你知道吗在创建容器的同一行上使用
grid()
时会发生什么,请参见此图。你知道吗现在,如果删除创建容器的行上的
grid()
部分,然后将其写入下一行,正如上面图像的注释掉部分所示,它将按预期工作。如下图所示,正确使用容器的grid()。你知道吗要解决评论中的第二个问题,可以在左下角添加一个按钮。你知道吗
示例:
相关问题 更多 >
编程相关推荐