我想创建一个kivy程序,从文本输入中获取一个数字,在数字中添加一个并在Label中写入。
但程序没有接受我的变量作为根小部件的一部分。
这是程序:
import kivy
from kivy.app import App
from kivy.uix.scatter import Scatter
from kivy.uix.label import Label
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.textinput import TextInput
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import *
from kivy.graphics.vertex_instructions import *
from kivy.graphics.context_instructions import *
kivy.lang.Builder.load_string('''
<my_layout>:
orientation: 'vertical'
canvas:
Color
rgba: 10, 10, 0, 1
Label:
id: label0
text: 'Wie viel Wiegt das Ei in gramm?'
font_size: 50
TextInput:
id: my_textinput
font_size: 100
size_hint_y: None
height: 100
Button:
id: my_button
height: 100
text: 'button'
canvas:
Color:
rgba: 0, 0, 20, 1
on_press: root.berechnen(my_textinput.text)
Label:
id: label1
text: root.var
''')
class my_layout(BoxLayout):
def __init__(self, **kwargs):
super(my_layout,self).__init__(**kwargs)
self.var = self.number
def berechnen(self, txt):
self.number = txt
class Add(App):
def build(self):
return my_layout()
if __name__ == "__main__":
Add().run()
答案 0 :(得分:2)
你设置了self.var,但这不是一个kivy属性所以gui不知道它被改变了并且没有设置属性。
你可以改为
from kivy.properties import StringProperty
class my_layout(BoxLayout):
var = StringProperty('')
以其他方式继续进行。
看起来您的代码也会崩溃,因为您没有设置self.number
,但您确实参考了它。也许这是粘贴你的例子时的错误。