【问题标题】:string formatting is not working in tkinter字符串格式在 tkinter 中不起作用
【发布时间】:2020-09-10 18:31:08
【问题描述】:

我一直在尝试学习 tkinter 并创建了一些可以发布一堆函数结果的东西,并且在终端中字符串格式有效,但在 gui 中字符串格式根本不起作用。我很困惑为什么?

代码如下:

from tkinter import *
import ForFeesCovered

root = Tk()
root.title("Staff Fee Calculator")
root.geometry("375x400")

myLabel = Label(root,
            text="Staff Fee Calculator")

e = Entry(root,
      width=50,
      borderwidth=5)


def output():
    input_file = e.get()
    f = ForFeesCovered.readfile(input_file)
    file = ForFeesCovered.readfile(input_file)
    staff = ForFeesCovered.getnamesofstaff(f)
    staff.sort(reverse=False)
    dic = ForFeesCovered.sort_dic(staff)

    line_skip = 1
    for lines in file:
        line = lines.strip().split(",")
        if line_skip != 1:
        total = float("        
        {:.2f}".format(ForFeesCovered.getfeesforline(line)))
            name = ForFeesCovered.get_name_of_staff(line, staff)
            dic = ForFeesCovered.populating_dic(dic, name, total)
        else:
            line_skip += 1

    string_dic = ""
    result_file = open("result.txt", "w+")
    for key in dic:
        result_file.write("{} : {}\n".format(key, dic[key]))
        string_dic = string_dic + "{:30} : {:>30}\n".format(key,         
dic[key])
        print(string_dic)
    result_file.close()

    output_dic = Label(root, text=string_dic, justify=LEFT)
    output_dic.grid(row=2, column=0, pady=20)

submit = Button(root, text="Submit", command=output)

myLabel.grid(row=0, column=0)
e.grid(row=1, column=0,)
submit.grid(row=1, column=2)


root.mainloop()

【问题讨论】:

  • 代码其实很多,尽量只包含有错误的部分?

标签: python tkinter tkinter-layout


【解决方案1】:

终端使用固定宽度字体,GUI 使用可变宽度字体。

如果你想用空格来排列,你需要使用固定宽度的字体。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多