【tkinter布局问题】用grid调整控件在父组件中的位置
想把一个button放在一个frame的正中间。frame设置好大小后,加入button,frame大小会根据button大小变化。
于是用grid.propogate(0)固定frame大小,这时button始终在frame左上角,sticky改不了位置,是哪出了问题? 我记得这好像是网格布局,有可能是你其他组件所处的网格占的面积比较大,所以会造成改不了的错觉 你去论坛搜搜,我记得有个软件可以直接通过拖拽生成界面布局的代码,挺好使的 本帖最后由 阿奇_o 于 2021-4-23 02:24 编辑
# 理解:grid 里的 sticky 参数 到底是如何起作用的?
import tkinter as tk
window = tk.Tk()
window.rowconfigure(0, weight=1, minsize=200) # row=0,minsize=200 决定每个cell的 最小高多少(row行高,y方向)
# window.columnconfigure(0, weight=1,)
window.columnconfigure(0, weight=1, minsize=300) # column=0, minsize=300 决定每个cell的 最小宽多少(列宽,x方向)
# 注1:weight=1,使之跟随window窗体的大小改变而改变
# 注2:若没有设置row和column的大小,置于其中的组件(如一个button)
# 将难以看出其位置是否改变,因为组件默认会占满整个cell(grid)
btn = tk.Button(master=window, text='Click me' )
btn.grid(sticky='e') # row=0, column=0 即 第一个cell(grid网格中的第一个单元格)
# sticky='e' 相当于“右对齐”,使该组件 在该cell单元格中 右对齐。
#其他组件(如Label)也是一样的原理
tk.Label(master=window, text="I'm a Lable.").grid(sticky='sw')
# tk.Entry(master=window).grid(sticky='se')
window.mainloop()
阿奇_o 发表于 2021-4-23 02:02
mark
页:
[1]