使用 pack() 的 Tkinter 小部件位移
Tkinter widget displacement with pack()
我想在一个框架中打包两个按钮(左和右)和一个标签(在中间)。我希望标签将框架上剩余的 space 填充到两侧,但是小部件会被这段代码垂直移位。最好的方法是什么?小部件不一定必须打包在框架上,但我希望它们水平对齐,而标签的文本大小可以更改,但按钮需要留在最左侧和最右侧的位置。 enter image description here
import tkinter as tk
root = tk.Tk()
root.geometry('600x800')
root.configure(background='#141414')
frm = tk.Frame(root)
frm.place(x=0, y=0, width=300, height=30)
btn1 = tk.Button(frm, text='button1')
lbl = tk.Label(frm, text='Lalalalalala')
btn2 = tk.Button(frm, text='button2')
btn1.pack(side='left')
lbl.pack(fill='x')
btn2.pack(side='right')
tk.mainloop()
您可以通过多种方式解决此问题。一种解决方案是将标签包装到一侧或另一侧而不是顶部。
btn1.pack(side='left')
lbl.pack(side='left', fill='x', expand=True)
btn2.pack(side='right')
另一种是先包纽扣,再包标签。对于 pack
,顺序很重要。
btn1.pack(side='left')
btn2.pack(side='right')
lbl.pack(fill='x', expand=True)
有关 pack
工作原理的图解说明,请参阅 to the question
我想在一个框架中打包两个按钮(左和右)和一个标签(在中间)。我希望标签将框架上剩余的 space 填充到两侧,但是小部件会被这段代码垂直移位。最好的方法是什么?小部件不一定必须打包在框架上,但我希望它们水平对齐,而标签的文本大小可以更改,但按钮需要留在最左侧和最右侧的位置。 enter image description here
import tkinter as tk
root = tk.Tk()
root.geometry('600x800')
root.configure(background='#141414')
frm = tk.Frame(root)
frm.place(x=0, y=0, width=300, height=30)
btn1 = tk.Button(frm, text='button1')
lbl = tk.Label(frm, text='Lalalalalala')
btn2 = tk.Button(frm, text='button2')
btn1.pack(side='left')
lbl.pack(fill='x')
btn2.pack(side='right')
tk.mainloop()
您可以通过多种方式解决此问题。一种解决方案是将标签包装到一侧或另一侧而不是顶部。
btn1.pack(side='left')
lbl.pack(side='left', fill='x', expand=True)
btn2.pack(side='right')
另一种是先包纽扣,再包标签。对于 pack
,顺序很重要。
btn1.pack(side='left')
btn2.pack(side='right')
lbl.pack(fill='x', expand=True)
有关 pack
工作原理的图解说明,请参阅