我正在使用 kivy.clock 为我的应用程序的一部分制作秒表,但它给出了属性错误

I am making a stop watch for one part of my app using kivy.clock but it's giving Attribute Error

我的应用程序中有多个 windows,“Tracker”就是其中之一。跟踪器将显示一个秒表,并通过在最后将总时间输入数据库来跟踪所花费的时间。 (我还没有编写数据库部分的代码。我现在只是将总时间打印到控制台)。

出于某种原因,我将 运行 保存为属性错误。

追踪器代码 Class:

class Tracker(Screen):
    time = 0
    start = False

    def start_stop(self):
        self.root.ids.start_stop_btn.text = ('Start'
                                         if self.start else 'Stop')
        self.start = not self.start
        Clock.schedule_interval(self.add_time, 1)

    def add_time(self, *args):
        while self.start:
            self.root.ids.sec_ones.text = str(int(self.root.ids.sec_ones.text) + 1)
            if self.root.ids.sec_ones.text == '10':
                self.root.ids.sec_tens.text = str(int(self.root.ids.sec_tens.text) + 1)
                self.root.ids.sec_ones.text = '0'
                if self.root.ids.sec_tens.text == '6':
                    self.root.ids.minute_ones.text = str(int(self.root.ids.minute_ones.text) + 1)
                    self.root.ids.sec_tens.text = '0'
                    if self.root.ids.minute_ones.text == '10':
                        self.root.ids.minute_ones.text = '0'
                        self.root.ids.minute_tens.text = str(int(self.root.ids.minute_tens.text) + 1)
            self.time += 1
        print(self.time)

以及 kv 文件中的跟踪器 Class:

<Tracker>:

    name: "Tracker"
    Label:
        text: "Timer: "
        font_size: 50
        pos_hint: {'x': 0.1, 'top': 1}
        size_hint: 0.2, 0.2

    Label:
        id: minute_tens
        text: '0'
        pos_hint: {'x': 0.36, 'top': 0.99}
        font_size: 40
        size_hint: 0.1, 0.2
        canvas.before:
            Color:
                rgba: (0.349, 0.349, 0.349, 1)
            Rectangle:
                pos: self.pos
                size: self.size

    Label:
        id: minute_ones
        text: '0'
        pos_hint: {'x': 0.47, 'top': 0.99}
        font_size: 40
        size_hint: 0.1, 0.2
        canvas.before:
            Color:
                rgba: (0.349, 0.349, 0.349, 1)
            Rectangle:
                pos: self.pos
                size: self.size

    Label:
        text: ':'
        pos_hint: {'x': 0.59, 'top': 0.99}
        font_size: 40
        size_hint: 0.05, 0.2

    Label:
        id: sec_tens
        text: '0'
        pos_hint: {'x': 0.65, 'top': 0.99}
        font_size: 40
        size_hint: 0.1, 0.2
        canvas.before:
            Color:
                rgba: (0.349, 0.349, 0.349, 1)
            Rectangle:
                pos: self.pos
                size: self.size

    Label:
        id: sec_ones
        text: '0'
        pos_hint: {'x': 0.76, 'top': 0.99}
        font_size: 40
        size_hint: 0.1, 0.2
        canvas.before:
            Color:
                rgba: (0.349, 0.349, 0.349, 1)
            Rectangle:
                pos: self.pos
                size: self.size

    Button:
        id: start_stop_btn
        text: 'Start'
        pos_hint: {'x': 0.6, 'top': 0.77}
        size_hint: 0.1, 0.06
        on_release: root.start_stop()

    SmoothButton:
        text: "Back"
        pos_hint: {'x': 0.8, 'top': 0.15}
        size_hint: 0.15, 0.05
        on_release:
            app.root.current = "HomePage"
            root.manager.transition.direction = "right"

错误如下所示:

应用程序本身运行。只有在单击开始按钮后才会出现此错误。

唯一的 class 有 root 的是 App class 所以 Tracker 没有 root 属性

start_stop 方法中删除下面的“根”

def start_stop(self):
        self.ids.start_stop_btn.text = ('Start'
                                         if self.start else 'Stop')