【问题标题】:Random {} appearing in text label on python tkinter form [duplicate]随机{}出现在python tkinter表单的文本标签中[重复]
【发布时间】:2019-02-17 23:03:53
【问题描述】:

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

我在 Windows 10 上使用 Python 3.7.2。

代码:

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()

【问题讨论】:

  • 每个副本,您的标签是一个元组 - list[i],":"。将其设为'{}:'.format(list[i]) 之类的字符串

标签: python python-3.x tkinter


【解决方案1】:

在第 29 行,

label["text"] = list[i],":"

将逗号改为+

label["text"] = list[i] + ":"

不知道为什么会这样,但确实如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多