Я полуооо с Python, но новичок в Kivy, я знаю, что моя проблема связана с идентификатором метки, но я не могу ее решить, и поиск, похоже, не дает мне Что мне нужно.Kivy меняет текст на пиктограмме с помощью python
Я пытаюсь получить ярлык, чтобы отображать текущее время, поэтому я знаю, что у меня есть правильная структура с точки зрения обновления и т. Д., Но я уверен, что все это со ссылкой на идентификатор ярлыка каким-то образом и его, с чем бороться?
Следующий код работает нормально, отображает метки и т. Д., Пока я не попытаюсь обновить label_text.text
, в этот момент я получаю сообщение об ошибке: AttributeError: 'float' object has no attribute 'lbl_time'
. Я пробовал str(time.strftime("%H:%M:%S"))
, но это не решает.
from kivy.app import App
from kivy.base import runTouchApp
from kivy.lang import Builder
from kivy.properties import ListProperty
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty
from kivy.uix.screenmanager import ScreenManager, Screen, WipeTransition, FadeTransition
from kivy.uix.anchorlayout import AnchorLayout
from kivy.properties import ObjectProperty, StringProperty
from kivy.clock import Clock
import time
from datetime import datetime
class MainScreen(Screen):
def update_time(self):
lbl_time = ObjectProperty()
MyTime = time.strftime("%H:%M:%S")
self.lbl_time.text = MyTime
class DetailScreen(Screen):
pass
class SettingsScreen(Screen):
pass
class MyScreenManager(ScreenManager):
pass
root_widget = Builder.load_string('''
MyScreenManager:
MainScreen:
DetailScreen:
SettingsScreen:
<MainScreen>:
name: 'main'
BoxLayout:
orientation: 'vertical'
Label:
id: lbl_time
text: 'Time'
font_size: 60
Label:
text: 'Main2'
font_size: 30
GridLayout:
cols: 2
Label:
text: 'Bottom'
font_size: 30
Label:
text: 'Bottom1'
font_size: 30
<DetailScreen>:
name: 'details'
<SettingsScreen>:
name: 'settings'
''')
class ScreenManagerApp(App):
def build(self):
return root_widget
def on_start(self):
Clock.schedule_interval(MainScreen.update_time, 1)
ScreenManagerApp().run()
Изменить метод _update_time_: ** Update_Time четкости (сам, * арг): MyTime = time.strftime ("% H:% M:% S") само. ids ['lbl_time']. text = MyTime ** – Dzmitry
Привет - Извините, что не работает -> 'Файл MyApp.py", строка 20, в update_time self.ids ['lbl_time']. text = MyTime AttributeError : объект 'float' не имеет атрибута 'ids'' – northwarks
Вам нужно позвонить * MainScreen() * для доступа к его методам 'Clock.schedule_interval (MainScreen(). update_time, 1)' – Dzmitry