【发布时间】:2016-05-14 19:58:30
【问题描述】:
有没有办法使用 Tkinter 来设置按钮,以便它们始终放置在距窗口边缘一定数量的像素处,即使窗口已调整大小?我尝试过使用锚点,但这似乎并没有使窗口中的位置移动太多。
【问题讨论】:
标签: python python-2.7 tkinter
有没有办法使用 Tkinter 来设置按钮,以便它们始终放置在距窗口边缘一定数量的像素处,即使窗口已调整大小?我尝试过使用锚点,但这似乎并没有使窗口中的位置移动太多。
【问题讨论】:
标签: python python-2.7 tkinter
您可以将按钮或任何其他小部件锚定到窗口的两侧,方法是从 Frame 开始,并将其行和列配置为具有 1 的权重让它填满父窗口。
import Tkinter as tk
import ttk
root = tk.Tk()
frame = ttk.Frame(root)
frame.pack(fill=tk.BOTH, expand=True)
frame.columnconfigure(index=0, weight=1)
frame.columnconfigure(index=2, weight=1)
frame.rowconfigure(index=0, weight=1)
frame.rowconfigure(index=2, weight=1)
然后,对于每个要使用 sticky 将其锚定到相应侧的按钮,并使用 padx 或 pady 添加一些按钮和窗口之间的填充(以像素为单位)。
top_padding = 5
top = ttk.Button(frame, text="Top")
top.grid(row=0, column=1, sticky=tk.N, pady=(top_padding, 0))
left_padding = 5
left = ttk.Button(frame, text="Left")
left.grid(row=1, column=0, sticky=tk.W, padx=(left_padding, 0))
right_padding = 5
right = ttk.Button(frame, text="Right")
right.grid(row=1, column=2, sticky=tk.E, padx=(0, right_padding))
bottom_padding = 5
bottom = ttk.Button(frame, text="Bottom")
bottom.grid(row=2, column=1, sticky=tk.S, pady=(0, bottom_padding))
root.mainloop()
【讨论】:
您是否尝试过使用padx 函数?
它是这样工作的:
button=Button(place,text="something something", padx=10)
它在小部件之间提供额外的水平填充,此外,您可以将frames 与 padx 和锚点一起使用,以便将文本固定到某个位置
【讨论】: