Python打印{}而不是空格 - tkinter

时间:2017-10-15 11:40:06

标签: python python-3.x tkinter label

在这个简单的例子中,我希望标签显示为“1 3”:

bool isWithinWeek = Math.Abs(ExportDate - CurrentDate).TotalDays) < 7

然而,python显示“1 {} 3”而不是。

问题出在哪里?

3 个答案:

答案 0 :(得分:1)

A[0:]是异构列表,tkinter.Label的文档建议其text参数应该接收一个字符串(“text”这个词也非常强烈地暗示) https://docs.python.org/3/library/tkinter.ttk.html#label-options

答案 1 :(得分:1)

如果您想要&#34; 1 3&#34;,请尝试:

A = [1," ", 3]
s = ''
for c in A:
    s += str(c)

label = tkinter.Label(window, text = s)

答案 2 :(得分:1)

正如jonathan和Ron Norris所说,你需要将一个字符串传递给text构造函数的Label参数。

我建议将异构列表转换为字符串:

A = [1," ", 3]
labeltext = ''.join(map(str, A))
label = tkinter.Label(window, text = labeltext)

编辑:由于您现在要求在许多代码位置执行此操作,并且代码更改最少,我建议围绕string使用此包装:

tkinter.Label

此函数将其所有参数不变地传递给def createlabel(*args, **kwargs): if 'text' in kwargs and isinstance(kwargs['text'], list): kwargs['text'] = ''.join(map(str, kwargs['text'])) return tkinter.Label(*args, **kwargs) ,但要注意将tkinter.Label关键字参数转换为字符串(如果它是列表)。

当你定义了这个,使用&#34; Find&amp;替换&#34;您可以在编辑器中使用text替换tkinter.Label的来电。

您的原始内容可能会像这样转换,例如:

createlabel