Tkinter按钮距窗口边缘的距离

时间:2016-02-05 00:00:49

标签: python python-2.7 tkinter

有没有办法使用Tkinter来设置按钮,以便它们始终从窗口边缘放置一定数量的像素,即使窗口调整大小?我尝试过使用锚点,但似乎并没有在窗口中移动那么多。

2 个答案:

答案 0 :(得分:1)

您可以通过以 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()

答案 1 :(得分:0)

您是否尝试过使用padx功能? 它的工作原理如下:

button=Button(place,text="something something", padx=10)

它在小部件之间提供了额外的水平填充,但是,你可以使用frames和padx以及一个锚来使文本固定到一个位置