python tkinter字符串格式化填充对齐

在用python的tkinter库做一个小工具时,遇到了字符串格式化和对齐的问题,记录一下

我是要让tkinter的ListBox里每一行数据纵向对齐,效果如下:

每一行是三个数据组合而成,每个数据长度不定。

要想实现这个效果,需要用到string.format的填充对齐,另外还需要使用等宽字体。

 

因为string.format的填充对齐是按字符个数来的,它只能做到填充之后字符数量符合指定的个数,如果每个字符的宽度不一样就对不齐。

string.format的填充对齐格式如下

{值索引 : 填充字符 对齐方式 填充后长度}

<为左对齐,^为居中对齐,>为右对齐

例如"{0:'*'<10}",表示第0个值是左对齐的,需要用*号填充右边直到达到10个字符。

(顺便提一下全角空格是chr(12288),也就是中文标点里的空格。)

 

好了,然后设置下tk相应控件的字体,例如:

li = tk.Listbox(top_level,bg="green",xscrollcommand=xscroll.set,yscrollcommand=yscroll.set,font=("TkFixedFont",10))

注意里面设置的font,TkFixedFont是tk封装的跨平台等宽字体名字。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值