簡體   English   中英

Kivy/Python Countdown App 項目 kivy has no attribute 'built' 錯誤

[英]Kivy/Python Countdown App project kivy has no attribute 'built' error

問題:什么是“沒有屬性”構建的錯誤,我需要做些什么來更正此代碼,以便它可以接收日期時間對象並顯示倒計時? 抱歉,帖子太長了。

我已經提供了代碼和.kv 文件的鏈接。

我試圖創建一個倒計時時鍾,它將 datetime 對象作為參數並倒計時到該日期(使用 python 和 kivy)。 它基本上是對Adam Giermanowski的倒計時教程的輕微改編。

這是我的代碼:

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import StringProperty
from kivy.clock import Clock
import datetime

#datetime object
b= datetime.datetime(2016,9,12,3,5)

class Counter_Timer(BoxLayout):
    days = StringProperty()
    hours = StringProperty()
    minutes = StringProperty()
    seconds = StringProperty()

    def __init__(self, datetimeOBJ):
        self.datetimeOBJ = datetimeOBJ

    def update(self, dt):
        #the difference in time
        delta = self.datetimeOBJ - datetime.datetime.now()
        self.days = str(delta.days)
        hour_string = str(delta).split(', ')[1]
        self.hours = hour_string.split(':')[0]
        self.minutes = hour_string.split(':')[1]
        self.seconds = hour_string.split(':')[2].split('.')[0]


class Counter(App):
    #takes a datetime object as a parameter 
    def __init__(self, datetimeOBJ):
        self.datetimeOBJ = datetimeOBJ 

    def build(self):
        Counter = Counter_Timer(self.datetimeOBJ)
        Clock.schedule_interval(Counter.update, 1.0)
        return Counter

if __name__=='__main__':
    Counter(b).run()

這是 Counter(b).run() 行上的錯誤:

AttributeError: 'Counter' object has no attribute 'built'

當您覆蓋__init__ ,您必須調用超類構造函數,以便該構造函數為使類的其他方法工作而完成的所有事情都完成。 您的 init 方法應該是這樣的:

def __init__(self, datetimeOBJ):
    App.init(self)
    self.datetimeOBJ = datetimeOBJ 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM