首页 > 解决方案 > 不明白这个 AttributeError:'str' object has no attribute 'text'

问题描述

我正在制作一个允许在窗口中显示正在运行的文本的应用程序,但刚刚开始解析 OOP,我想知道如何解决这个错误......还有一个根据需要工作的示例,它将在脚本下方显示错误。

class Main_Desktop():

    def __init__(self,parent,i,text):
        self.i=i
        self.parent=parent
        self.ticker=Text(parent,height=1,width=100)
        self.text=text
        self.ticker.pack()
        self.txt(i)

    def txt(self, i):
        i = 0
        self.text = ('' * 20) + self.text + ('' * 20)
        x = self.text[i:i + 20]
        self.ticker.insert("1.1", x)
        if i == len(self.text):
            i = 0
        else:
            i = i + 1
        self.ticker.after(100, lambda: Main_Desktop.txt(self.text[i:i + 20], i))

这是一个示例,它可以根据需要工作:

root =Tk()
text="string"
text = (' '*20) + text + (' '*20)
ticker = Text(root, height=1, width=20)
ticker.pack()

i = 0
def command(x, i):
    ticker.insert("1.1", x)
    if i == len(text):i = 0
    else:i = i+1
    root.after(100, lambda:command(text[i:i+20], i))

command(text[i:i+20], i)

标签: pythonclasstkinterattributes

解决方案


AttributeError:'str' object has no attribute 'text', tkinter

这意味着在您的代码中的某处,您有一个str对象,您正试图调用.text()它的方法。
因为您的str对象没有.text()方法,所以您会收到该错误。

要解决此问题,请检查您的变量类型,您不应使用str对象,而应使用具有.text()方法的对象


推荐阅读