Python tkinter 网格管理器不会将按钮放在左侧,sticky = tk.W 或 sticky = 'w'
Python tkinter Grid Manager doesn't place button on left with sticky = tk.W or sticky = 'w'
一个框架内有两个框架,按钮放在顶部框架,sticky=tk.W似乎没有任何效果。
import tkinter as tk
def _exit():
raise SystemExit
root = tk.Tk()
frame = tk.Frame(root,width = 1200, height = 650, bg = 'Yellow')
top_frame = tk.Frame(frame, width = 1200, height = 50, bg = 'green')
bot_frame = tk.Frame(frame, width = 600, height = 600, bg = 'skyblue')
exit_button = tk.Button(top_frame, text = 'Exit',
command = _exit)
frame.grid()
top_frame.grid(column=0,row=0)
bot_frame.grid(column=0,row=1)
exit_button.grid(column=0,row=0, sticky = tk.W)
root.mainloop()
如果我删除底部框架,便签会起作用:
import tkinter as tk
def _exit():
raise SystemExit
root = tk.Tk()
frame = tk.Frame(root,width = 1200, height = 650, bg = 'Yellow')
top_frame = tk.Frame(frame, width = 1200, height = 50, bg = 'green')
exit_button = tk.Button(top_frame, text = 'Exit',
command = _exit)
frame.grid()
top_frame.grid(column=0,row=0)
exit_button.grid(column=0,row=0, sticky = tk.W)
root.mainloop()
当您在 top_frame
中放置一个按钮时,它会缩小以适合按钮。按钮 位于 top_frame
左侧 ,但 top_frame
仅与按钮一样宽,并且位于 space 的中央。因此看起来按钮不在左边,但它是。该按钮位于 top_frame
的左边缘,但 top_frame
位于 frame
的中心。
如果你想让top_frame
填充window的宽度(或者分配给它的space的宽度)你需要用sticky
配合它,也是。
top_frame.grid(column=0,row=0, sticky="ew")
一个框架内有两个框架,按钮放在顶部框架,sticky=tk.W似乎没有任何效果。
import tkinter as tk
def _exit():
raise SystemExit
root = tk.Tk()
frame = tk.Frame(root,width = 1200, height = 650, bg = 'Yellow')
top_frame = tk.Frame(frame, width = 1200, height = 50, bg = 'green')
bot_frame = tk.Frame(frame, width = 600, height = 600, bg = 'skyblue')
exit_button = tk.Button(top_frame, text = 'Exit',
command = _exit)
frame.grid()
top_frame.grid(column=0,row=0)
bot_frame.grid(column=0,row=1)
exit_button.grid(column=0,row=0, sticky = tk.W)
root.mainloop()
如果我删除底部框架,便签会起作用:
import tkinter as tk
def _exit():
raise SystemExit
root = tk.Tk()
frame = tk.Frame(root,width = 1200, height = 650, bg = 'Yellow')
top_frame = tk.Frame(frame, width = 1200, height = 50, bg = 'green')
exit_button = tk.Button(top_frame, text = 'Exit',
command = _exit)
frame.grid()
top_frame.grid(column=0,row=0)
exit_button.grid(column=0,row=0, sticky = tk.W)
root.mainloop()
当您在 top_frame
中放置一个按钮时,它会缩小以适合按钮。按钮 位于 top_frame
左侧 ,但 top_frame
仅与按钮一样宽,并且位于 space 的中央。因此看起来按钮不在左边,但它是。该按钮位于 top_frame
的左边缘,但 top_frame
位于 frame
的中心。
如果你想让top_frame
填充window的宽度(或者分配给它的space的宽度)你需要用sticky
配合它,也是。
top_frame.grid(column=0,row=0, sticky="ew")