python - ValueError: KivyMD: App 对象必须继承自`kivymd.app.MDApp`
问题描述
出于某种原因,我无法让 MDTextField 工作。我觉得它很简单,但我似乎无法弄清楚。有任何想法吗?
import kivymd
from kivy.app import App
from kivymd.app import MDApp
from kivy.uix.floatlayout import FloatLayout
from kivymd.theming import ThemeManager
from kivymd.uix.textfield import MDTextField
class MainApp(MDApp):
theme_cls = ThemeManager()
theme_cls.primary_palette = "Blue"
theme_cls.theme_style = "Dark"
MainApp().run()
'千伏'
#:import MDTextField kivymd.uix.textfield.MDTextField
FloatLayout:
size_hint: .8, .8
pos_hint: {"center_x": .5, "center_y": .5}
spacing: dp(100)
orientation: 'vertical'
MDTextField:
解决方案
所以显然我的问题不在于文本字段,而是主题管理器。所以而不是
import kivymd
from kivy.app import App
from kivymd.app import MDApp
from kivy.uix.floatlayout import FloatLayout
from kivymd.theming import ThemeManager
from kivymd.uix.textfield import MDTextField
class MainApp(MDApp):
theme_cls = ThemeManager()
theme_cls.primary_palette = "Blue"
theme_cls.theme_style = "Dark"
MainApp().run()
我应该使用
import kivymd
from kivy.app import App
from kivymd.app import MDApp
from kivy.uix.floatlayout import FloatLayout
from kivymd.uix.textfield import MDTextField
class MainApp(MDApp):
def __init__(self, **kwargs):
self.title = "BMI"
self.theme_cls.theme_style = "Dark"
self.theme_cls.primary_palette = "Blue"
super().__init__(**kwargs)
MainApp().run()
推荐阅读
- kotlin - Dagger @Provides in Kotlin
- java - spring-kafka 使用 Avro 序列化/反序列化 org.springframework.messaging.Message 对象
- ssl - 哪个 Kubernetes 入口“获胜”(同一主机的 tls 和多个入口)?
- sed - 是否可以使用 sed 命令替换: ( -> \( 同时 \( -> (
- resolution - 更改显示器分辨率
- python-3.x - 仅在 pycharm 中没有名为“PIL”的模块(在 IDLE 中运行良好)
- android - 布局不会在没有边距的情况下居中
- java - 如何在java中创建一个由类组成的二维数组
- python-3.x - 通过 Python3 在 Linux 中关闭屏幕
- php - 在给定文本中查找 PHP 中特定对象的模式