2016-12-22 2 views
0

Kivy의 Python에서 레이블/버튼의 텍스트 색상을 올바르게 업데이트하는 방법을 보여줄 수 있습니까?Kivy Python의 색상으로 텍스트 업데이트

나는 색깔을 바꿀 수 있고 싶다, 사용자 안내서는 표식 언어를 제안한다 그러나 나는 시도하고 다만 그것을 작동하게 할 수 없다. 궁극적으로 나는 하루 중 다른 시간에 텍스트의 색을 바꾸고 싶습니다. Kivy 언어 밖에서 텍스트 색을 변경하는 것만으로 코딩 할 수 있습니까? 난 당신의 코드를 약간 변경

from kivy.app import App 
from kivy.lang import Builder 
from kivy.uix.screenmanager import Screen 
from kivy.properties import ObjectProperty, StringProperty 
from kivy.clock import Clock 
import time 
from datetime import datetime, timedelta 



Builder.load_string(''' 
<MainScreen>: 
    name: 'main' 
    the_time: _id_lbl_time 
    BoxLayout: 
     orientation: 'vertical' 
     Label: 
      id: _id_lbl_time 
      text: 'Time' 
      font_size: 120 
''') 


class MainScreen(Screen): 
    def update_time(self, sec): 
     MyTime = time.strftime("%H:%M:%S") 
     self.the_time.text = MyTime <--- UPDATE COLOR HERE? 

class ScreenManagerApp(App): 
    def build(self): 
     self.main_screen = MainScreen() 
     return self.main_screen 

    def on_start(self): 
     Clock.schedule_interval(self.main_screen.update_time, 1)    
#=========================================================== 

# run the App ! 
ScreenManagerApp().run() 

답변

0

나는 (I 희망!) 난에 대한 지침을 필요로 비트 관련으로 내 코드에서 다음 추출했다가 .. 그것은 변경 만들려면 임의의 색상.

from kivy.app import App 
from kivy.lang import Builder 
from kivy.uix.screenmanager import Screen 
from kivy.properties import ObjectProperty, StringProperty, ListProperty 
from kivy.clock import Clock 
import time 
from datetime import datetime, timedelta 
from random import random 


Builder.load_string(''' 
<MainScreen>: 
    name: 'main' 
    the_time: _id_lbl_time 
    BoxLayout: 
     orientation: 'vertical' 
     Label: 
      color: root.color 
      id: _id_lbl_time 
      text: 'Time' 
      font_size: 120 
''') 


class MainScreen(Screen): 

    color = ListProperty([1,1,1,1]) 

    def __init__(self,**kwargs): 
     super(MainScreen,self).__init__(**kwargs) 
     Clock.schedule_interval(self.update_time, 1) 

    def update_time(self, sec): 
     MyTime = time.strftime("%H:%M:%S") 
     self.the_time.text = MyTime 
     self.color = [random(), random(), random(), 1] 



class ScreenManagerApp(App): 
    def build(self): 
     self.main_screen = MainScreen() 
     return self.main_screen 


ScreenManagerApp().run() 
+0

지금 작업 중 - 감사합니다. 매우 축제! 나는 ListProperty를 시도한 것처럼 매우 가깝다. 나는 Kivy 코드에'color = ListProperty'를 주 클래스로 사용했다. – northwarks

+0

@northwarks np, 네 좋아 보인다 :) – EL3PHANTEN