为了账号安全,请及时绑定邮箱和手机立即绑定

tkinter 文本小部件中的列宽是否可变?

tkinter 文本小部件中的列宽是否可变?

慕虎7371278 2023-06-27 17:29:20
我正在尝试在 tkinter 框中显示账单Text,但无法使所有列(如名称、价格等)对齐。是因为有些字母比其他字母更宽吗?ct=5.0for i in lst_bill:    txt_bill.insert(ct,'\n' + str(int(ct-4)))  # for sl.no    txt_bill.insert(tk.END,' '*11+i[0])    txt_bill.insert(tk.END,' '*(40-len(i[0]))+str(i[1]))    txt_bill.insert(tk.END,' '*(10-len(str(i[1]))) +i[2])    ct+=1lst_bill看起来像这样:[['Orange Cake', 20, 'milk'], ['Red Velvet Cake', 30, 'None'],  ['BlackCoffee', 5, 'None'], ['Pumpkin Pie', 10, 'Milk']]
查看完整描述

1 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

是的,这是因为您使用的是可变宽度字体。


您可以使用制表位而不用空格填充数据。例如,要将制表位设置为 50 像素、200 像素,然后是 250 像素,并且第三列右对齐,您可以这样做:


txt_bill.configure(tabs="50 200 right 250")

ct=5.0

for i in lst_bill:

    txt_bill.insert("end", f"{int(ct-4)}\t{i[0]}\t{i[1]}\t{i[2]}\n")

    ct += 1

//img4.sycdn.imooc.com/649aac170001830003820151.jpg

您可能希望根据字体和每列中数据的最大宽度来计算宽度,但这给出了总体思路。

查看完整回答
反对 回复 2023-06-27
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信