2017-10-10 1 views
1

문제는 해결할 수 없습니다. 예를 들어AttributeError : 'float'객체에 'root'속성이 없습니다.

from kivy.app import App 
from kivy.uix.floatlayout import FloatLayout 
from kivy.uix.label import Label 
from kivy.clock import Clock 

global C 
C = 0 




class Example(App): 
    def build(self): 
      global C 
      C = C + 1 
      y = str(C) 
      self.root = FloatLayout() 
      self.label = Label(text=y, pos=(0,0), size_hint=(1.0,1.0), halign="left") 


     self.label.text_size = self.label.size 
     self.root.add_widget(self.label) 
     return self.root 
     Clock.schedule_once(build, 0.1) 

Example().run() 

: 내가 원하는 때 나는 다음과 같은 코드를 실행하면

은 내가

AttributeError: 'float' object has no attribute 'root' 

모든 것이 내가

코드을 Clock.schedule 광고까지 잘 작동이 오류가 시간을 업데이트하려면 매초마다 메서드를 호출하십시오.

# Clock.schedule_in terval (시험 1)

그래서 나는 방법 전화 매초마다

하지만 난 ....

시간을 업데이트하고 난 같은 오류를 얻을 ID 시간으로 lable가에 보내려면
def test(self): 
    z = time.strftime("%H:%M:%S") 
    self.ids.time.text = (y) 

는 Clock.schedule_interval (시험 1)이 PROJEKT에

내 목표는 모든 페이지에 시간을 표시 예를 매 초 lables에 다른 화면에 다른 입력의 상태를 업데이트하는 것입니다. 또한

난 다음 명령을 시도하지만 그 예는 self.build이라 할 같이 = MYTIME

+0

Clock.schedule_once()가 수행하는 작업을하기 전에 돌아가시겠습니까? – jdv

+0

나는 그것이 중요하지 않다고 생각하는데, 나는이 주요한 프로젝트의 많은 방법들에서이 오류를 가지고있다. –

답변

1

build이 방법이며, 두 개 이상의 화면

self.the_time.text 작동 그다지 추측 스케줄링 이후 경과 된 시간에 대한 float 인수를 받아 들여야합니다.

나는 그 방법이 언 바운드 (암시적인 자아 없음)라고 불리며 그 자체가 그 float 값을 할당 받았다고 가정하기 때문에이 메서드는 그 플로트를 self으로 사용하려고 시도합니다. 이것은 꽤 명백한 이유 때문에 작동하지 않습니다.

DR DR : Clock.schedule_once(self.build, 0.1)을 사용하고 선언을 def build(self, dt=0):과 같이 변경하십시오.

+0

감사합니다. 매력과 흡사합니다. –

+0

들으니 잘 받아 들여주세요. 답변을 수락 한 것으로 표시해주세요. 감사 :) – Tshirtman

관련 문제