0

我被 Python 3 中的脚本困住了。我想将其他文本附加到 tkinter 中已经存在的标签。

我试过这个:

def labelConfig(string,append=False):
    if append:
        label.configure(text+=string)
    else:
        label.configure(text=string)

但它不会编译......我怎样才能正确地做到这一点?

4

3 回答 3

4

除了 Bryan Oakley 的回答之外,+=如果您将标签文本作为字典中的值访问,也可以使用:

def labelConfig(string,append=False):
    if append:
        label['text'] += string
    else:
        label['text'] = string

所有可以获取或设置的选项configure都具有等效的语法widget['option'] = value,可以在这种情况下使用。

于 2013-05-01T14:40:02.727 回答
3

这不是 tkinter 问题,这适用于所有 python。+=在函数调用中设置位置参数时不能使用。相反,您必须获取该值,根据需要对其进行修改,然后将新值分配给小部件。

例如:

def labelConfig(string,append=False):
    if append:
        text = label.cget("text") + string
        label.configure(text=text)
    else:
        label.configure(text=string)
于 2013-04-30T14:00:36.440 回答
0

text+=string是一个声明,所以它不会返回任何东西。您需要首先从标签中获取值,然后连接这些字符串,然后将它们作为参数传递

于 2013-04-30T13:56:19.783 回答