随机{}出现在python tkinter形式的文本标签中

时间:2019-02-17 23:03:53

标签: python python-3.x tkinter

我正在Python中使用Tkinter创建一个表单,并且某些标签的文本周围带有大括号({})。由于文本是使用字典的for循环生成的,并且每个标签的迭代都是相同的,因此我无法理解为什么某些标签例如 {First Name} 包括大括号,而 城市 之类的不包括大括号。

我正在Windows 10上使用Python 3.7.2。

output of form

代码:

import tkinter as tk

window = tk.Tk()
window.title("Address Entry Form")

frame1 = tk.Frame(master=window)
frame1["relief"] = tk.SUNKEN
frame1["borderwidth"] = 3
frame1.pack(fill=tk.X)

frame2 = tk.Frame(master=window)
frame2.pack(fill=tk.X)

list = {
    0: "First Name",
    1: "Last Name",
    2: "Address Line 1",
    3: "Address Line 2",
    4: "City",
    5: "State/Province",
    6: "Postal Code",
    7: "Country",
}

for i in list:
    label = tk.Label(master=frame1)
    label["text"] = list[i], ":"
    label.grid(row=i, column=0, sticky=tk.E)

    entry = tk.Entry(master=frame1)
    entry["width"] = 50
    entry.grid(row=i, column=1)

button1 = tk.Button(master=frame2)
button1["text"] = "Submit"
button1["width"] = 7
button1["height"] = 1
button1.pack(padx=5, pady=5, side=tk.RIGHT)

button2 = tk.Button(master=frame2)
button2["text"] = "Clear"
button2["width"] = 5
button2["height"] = 1
button2.pack(padx=5, pady=5, side=tk.RIGHT)

window.mainloop()

1 个答案:

答案 0 :(得分:-1)

第29行,

  

label [“ text”] = list [i],“:”

将逗号更改为+

  

label [“ text”] = list [i] +“:”

不确定为什么可以这样做,但是可以。