【发布时间】:2020-04-19 12:06:58
【问题描述】:
我目前正在尝试在 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 就是你要找的。span>
-
看看this post。我将详细介绍
grid()几何管理器。应该有助于清理使用一些。
标签: python python-3.x user-interface tkinter