请教一个关于tkinter 窗口内部组件对齐的问题
from tkinter import *tool = Tk()
Label(tool,text='这是五个字',bg='blue').grid(row=0)
Label(tool,text='俩字',bg='blue').grid(row=1)
Label(tool,text='三个字',bg='blue').grid(row=2)
Label(tool,text='我想四个',bg='blue').grid(row=3)
Label(tool,text='一',bg='blue').grid(row=4)
Label(tool,text='还是三',bg='blue').grid(row=5)
Label(tool,text='有点像四',bg='blue').grid(row=6)
mainloop()
这个代码里的几个Label大小不一,看起来很难看,想要全部都左对齐,或者右对齐的话该怎么设置啊
这个跟在一个Label里设置文字左对齐好像不一样
grid中添加一个参数sticky,该参数设置位置,可以使用 N, E, S, W 以及它们的组合来定位(EWSN代表东西南北,上北下南左西右东)
from tkinter import *
tool = Tk()
Label(tool,text='这是五个字',bg='blue').grid(row=0, sticky=W)
Label(tool,text='俩字',bg='blue').grid(row=1, sticky=W)
Label(tool,text='三个字',bg='blue').grid(row=2, sticky=W)
Label(tool,text='我想四个',bg='blue').grid(row=3, sticky=W)
Label(tool,text='一',bg='blue').grid(row=4, sticky=W)
Label(tool,text='还是三',bg='blue').grid(row=5, sticky=W)
Label(tool,text='有点像四',bg='blue').grid(row=6, sticky=W)
mainloop()
本帖最后由 Daniel_Zhang 于 2021-2-2 23:52 编辑
这个问题只需要使用 width 属性将 Label撑开就可以了
因为 width 默认是跟随 text 的字符数量(长度)进行设置的,所以会出现当 Label 的 text 的长度不同时,不同的 Label 的显示长度不同。如果你强制设置一个指定的 width 的话,所有的 Label 的 width 一样的情况下,就会自动对齐了{:10_254:}
from tkinter import *
tool = Tk()
Label(tool,text='这是五个字',bg='blue',width = 20).grid(row=0)
Label(tool,text='俩字',bg='blue', width = 20).grid(row=1)
Label(tool,text='三个字',bg='blue',width = 20).grid(row=2)
Label(tool,text='我想四个',bg='blue',width = 20).grid(row=3)
Label(tool,text='一',bg='blue',width = 20).grid(row=4)
Label(tool,text='还是三',bg='blue',width = 20).grid(row=5)
Label(tool,text='有点像四',bg='blue',width = 20).grid(row=6)
mainloop() 不行啊 这样出来的按钮是一样大了,可是字还是不齐啊,我想要每行字都左对齐或者右对齐 本帖最后由 Daniel_Zhang 于 2021-2-3 16:25 编辑
lxx213 发表于 2021-2-3 09:37
不行啊 这样出来的按钮是一样大了,可是字还是不齐啊,我想要每行字都左对齐或者右对齐
那就加上一个 anchor 进行对齐,anchor 的值有 n, ne, e, se, s, sw, w, nw, or center 这几个选项,我这里选的是 w 也就是左对齐
from tkinter import *
tool = Tk()
Label(tool,text='这是五个字',bg='blue',width = 20, anchor = "w").grid(row=0)
Label(tool,text='俩字',bg='blue', width = 20, anchor = "w").grid(row=1)
Label(tool,text='三个字',bg='blue',width = 20, anchor = "w").grid(row=2)
Label(tool,text='我想四个',bg='blue',width = 20, anchor = "w").grid(row=3)
Label(tool,text='一',bg='blue',width = 20, anchor = "w").grid(row=4)
Label(tool,text='还是三',bg='blue',width = 20, anchor = "w").grid(row=5)
Label(tool,text='有点像四',bg='blue',width = 20, anchor = "w").grid(row=6)
mainloop()
页:
[1]