Python 文本文件中的Tkinter GUI标签用花括号括起来

Python 文本文件中的Tkinter GUI标签用花括号括起来,python,user-interface,tkinter,Python,User Interface,Tkinter,作为我的第一个tkinter项目,我正在尝试用python制作一个待办事项列表。我在所有任务中都使用了一个文本文件(我只是使用另一个python程序添加了这个文件,这个程序是用来实现GUI的)。我将文件作为列表读取到程序中,并使用该列表作为标签文本。但是当我运行这个程序时,它看起来很棒,除了这些讨厌的花括号。有人知道如何摆脱它们吗。提前感谢您的帮助。:) 大括号之所以存在,是因为当tkinter需要字符串时,您给了它一个列表。简单的解决方案是将列表转换为字符串,然后再将其用作标签的文本 ta

作为我的第一个tkinter项目,我正在尝试用python制作一个待办事项列表。我在所有任务中都使用了一个文本文件(我只是使用另一个python程序添加了这个文件,这个程序是用来实现GUI的)。我将文件作为列表读取到程序中,并使用该列表作为标签文本。但是当我运行这个程序时,它看起来很棒,除了这些讨厌的花括号。有人知道如何摆脱它们吗。提前感谢您的帮助。:)


大括号之所以存在,是因为当tkinter需要字符串时,您给了它一个列表。简单的解决方案是将列表转换为字符串,然后再将其用作标签的文本

tasks_lbl = Label(..., text="\n".join(tasks), ...)
tkinter是tcl/tk解释器的薄包装。Tcl使用大括号来描述列表中的项目,以便列表可以转换为字符串,然后再转换回列表。因此,当您传递列表时,它使用自己的逻辑将列表转换为字符串,然后再将其添加到标签中。您希望通过在将列表交给tcl之前显式转换列表来避免此步骤

下面是一个简短的程序,说明了使用列表或带标签的字符串之间的区别:

import tkinter as tk

data = ["one two", "three four", "five six"]

root = tk.Tk()

l1 = tk.Label(root, text=data)
l2 = tk.Label(root, text="\n".join(data))

l1.pack(side="top", fill="x", padx=4, pady=4)
l2.pack(side="top", fill="x", padx=4, pady=4)
root.mainloop()


大括号之所以存在,是因为当tkinter需要字符串时,您给了它一个列表。简单的解决方案是将列表转换为字符串,然后再将其用作标签的文本

tasks_lbl = Label(..., text="\n".join(tasks), ...)
tkinter是tcl/tk解释器的薄包装。Tcl使用大括号来描述列表中的项目,以便列表可以转换为字符串,然后再转换回列表。因此,当您传递列表时,它使用自己的逻辑将列表转换为字符串,然后再将其添加到标签中。您希望通过在将列表交给tcl之前显式转换列表来避免此步骤

下面是一个简短的程序,说明了使用列表或带标签的字符串之间的区别:

import tkinter as tk

data = ["one two", "three four", "five six"]

root = tk.Tk()

l1 = tk.Label(root, text=data)
l2 = tk.Label(root, text="\n".join(data))

l1.pack(side="top", fill="x", padx=4, pady=4)
l2.pack(side="top", fill="x", padx=4, pady=4)
root.mainloop()


大括号仅适用于字符串中有空格的项目。所以
data=[“一二”,“三”,“四五”]
将得到
{一二}三{四五}
@acw1668:你不太正确。大括号和/或反斜杠可能不仅仅用于空格。非常感谢!真不敢相信我居然没想到。我还在学习,谢谢你提醒我。:)大括号仅适用于字符串中有空格的项。所以
data=[“一二”,“三”,“四五”]
将得到
{一二}三{四五}
@acw1668:你不太正确。大括号和/或反斜杠可能不仅仅用于空格。非常感谢!真不敢相信我居然没想到。我还在学习,谢谢你提醒我。:)