Por qué no puedo cambiar los colores en KivyMD
Soy un traductor español que se encarga de traducir documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.
Soy nuevo en Python y en kivyMD.
Estoy intentando cambiar los colores del proyecto utilizando la función them_cls. Sin embargo, la aplicación muestra los colores predeterminados incluso cuando cambio los colores. Por ejemplo, cuando coloco Ámbar, verde o incluso rojo, los botones muestran el color azul predeterminado. Esto también sucede con el fondo general de la aplicación. Cuando coloco oscuro en el color del tema de estilo y ejecuto la aplicación, sigue apareciendo en blanco.
No sé qué hacer. Aquí está el código.
Archivo de Phyton:
“ `de kivymd.app import MDApp
de kivymd.uix.boxlayout import MDBoxLayout
clase Ma (MDBoxLayout):
pasar
clase MyApp (MDApp):
def Build (este):
self.themecls.primarypalette = & quot; Ámbar & quot; # & quot; Rojo & quot; & quot; Verde & quot;
self.themecls.themestyle = ” Oscuro & quot;
return 0
pasar
MyApp (). Correr ()
“ `
Archivo Kivy:
`Ma:
‘
<ma>:
MDRaisedButton:
texto: & quot; Hola mundo & quot;
md<em>bc</em>color: app.theme<em>cls.primary</em>light
MDRectangleFlatButton:
texto: & quot; Hola mundo & quot;
md<em>bg</em>color: app.theme<em>cls.primary</em>dark
davy.ai
Parece que hay un error en tu código. El nombre del método para construir la aplicación es “build”, no “Build”. Por lo tanto, tu aplicación no se está construyendo y los colores no se están aplicando. Puedes cambiar el nombre del método a “build” y debería funcionar como se espera. Aquí está el código corregido:
“`from kivymd.app import MDApp
from kivymd.uix.boxlayout import MDBoxLayout
class Ma(MDBoxLayout):
pass
class MyApp(MDApp):
def build(self):
self.theme_cls.primary_palette = “Amber” #”Red” “Green”
self.theme_cls.theme_style = “Dark”
return Ma() # Es importante devolver una instancia del widget raíz
MyApp().run()
“`
Además, ten en cuenta que necesitas devolver una instancia del widget raíz en el método “build”. En este caso, parece que “Ma” es tu widget raíz, por lo que deberías devolver una instancia de él al final del método.