这是一个简单应用程序的代码:
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
from kivy.lang import Builder
from kivy.uix.textinput import TextInput
from kivy.uix.label import Label
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.boxlayout import BoxLayout
from kivymd.app import MDApp
from kivymd.theming import ThemeManager
Builder.load_string =('''
<Cont>:
rows: 2
c: C
c1: C1
c2: C2
m1: M1
m2: M2
BoxLayout:
orientation: 'vertical'
padding: [70]
spacing: 100
MDTextField:
id: C
size_hint: (1, .1)
font_size: (100)
multiline: False
MDTextField:
id: C1
size_hint: (1, .1)
font_size: (100)
multiline: False
MDTextField:
id: C2
size_hint: (1, .1)
font_size: (100)
multiline: False
MDTextField:
id: M1
size_hint: (1, .1)
font_size: (100)
multiline: False
MDTextField:
id: M2
size_hint: (1, .1)
font_size: (100)
multiline: False
BoxLayout:
size_hint: (1,.2)
padding: [40,0,40,20]
MDIconButton:
text: 'test'
on_press: root.cal()
''')
def get(c1,c2,m1,m2,c):
if c == '?':
c = 1
if c1 == '?':
c1 = 1
if c2 == '?':
c2 = 1
if m1 == '?':
m1 = 1
if m2 == '?':
m2 = 1
c1 = float(c1)
c2 = float(c2)
m1 = float(m1)
m2 = float(m2)
c = float(c)
Ans_C = str((c1*m1+c2*m2)/(m1+m2))
Ans_C1 = str((c*m1+c*m2-c2*m2)/(m1))
Ans_C2 = str((c*m1+c*m2-c1*m1)/(m2))
Ans_M1 = str((c2*m2-c*m2)/(c-c1))
Ans_M2 = str((c1*m1-c*m1)/(c-c2))
return {
'C': Ans_C,
'C1': Ans_C1,
'C2': Ans_C2,
'M1': Ans_M1,
'M2': Ans_M2
}
class Cont(GridLayout):
def cal(self):
i1 = self.c1.text
i2 = self.c2.text
i3 = self.m1.text
i4 = self.m2.text
i5 = self.c.text
gett = get(i1,i2,i3,i4,i5)
if self.c.text == '?':
self.c.text = gett.get('C')
if self.c1.text == '?':
self.c1.text = gett.get('C1')
if self.c2.text == '?':
self.c2.text = gett.get('C2')
if self.m1.text == '?':
self.m1.text = gett.get('M1')
if self.m2.text == '?':
self.m2.text = gett.get('M2')
class App(App):
theme_cls = ThemeManager()
title = 'Test'
def build(self):
self.theme_cls.theme_style = 'Dark'
return Cont()
if __name__ == "__main__":
App().run()
并且由于某种原因,应用程序在启动时出现空白屏幕:
我搜索并重新阅读了很多文档,但没有找到答案,我的错误在哪里?
同时,kivy MD 中的 ThemeManager 工作,很可能问题出在我的代码中不起作用的小部件中。
像这样的东西:
您使用的是过时的 API,显然是过时的 KivyMD 库 - https://kivymd.readthedocs.io/en/0.104.0/getting-started.html#first-kivymd-application