No se puede cambiar el texto de la etiqueta de kivy/kivymd.
Cuando intento cambiar el texto de una etiqueta en kivy/kivymd me da el siguiente error:
AttributeError: el objeto 'TheApp' no tiene el atributo 'ids'
Aquí hay parte del main.py para un ejemplo mínimo reproducible:
class TheApp(MDApp):
btstate = 0
def voice_session_connec(self):
if self.btstate == 0:
self.ids.Main_button.text = "Detener"
btstate = 1
th = threading.Thread(target=voice_session)
self.th.start()
else:
self.ids.Main_button.text = "Iniciar"
btstate = 0
self.th.join()
Cadena de KV:
MDFloatLayout:
MDRoundFlatButton:
id: Main_button
text: "Iniciar"
text_color: 0, 1, 0, 1
pos_hint: {"center_x": .5, "center_y": .5}
on_release: app.voice_session_connec()
Espero que puedas resolver esto, pero no soy muy bueno con kivy.
davy.ai
El problema parece estar en el uso del atributo ‘ids’ para acceder al objeto ‘Main_button’. Debes declarar primero ‘Main_button’ como un id en tu cadena KV dentro de corchetes angulares de esta manera:
Luego puedes acceder a él utilizando ‘self.root.ids.Main_button’ en tu código Python de esta manera:
Esto debería solucionar el error y permitirte cambiar el texto de la etiqueta.