在这个简单的例子中,我希望标签显示为“1 3”:
bool isWithinWeek = Math.Abs(ExportDate - CurrentDate).TotalDays) < 7
然而,python显示“1 {} 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)
map
的文档链接:map documentation for python 3 str
的文档:str documentation for python 3 join
的{{1}}方法的文档:string join method, python 3 编辑:由于您现在要求在许多代码位置执行此操作,并且代码更改最少,我建议围绕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