我正在嘗試在 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
您可能希望根據字體和每列中數據的最大寬度來計算寬度,但這給出了總體思路。
添加回答
舉報
0/150
提交
取消