提问人:Samk 提问时间:7/25/2023 最后编辑:Samk 更新时间:7/25/2023 访问量:19
尝试将 Python 变量放入 Kivy 时出错 (Python)
Error When Trying to get Python Variable into Kivy (Python)
问:
我目前正在尝试将一个 python 变量(称为 prior)放入 kivy 并在我这样做时动态更改标签的文本。我还是 kivy 的新手,我不确定为什么会出现此错误 kivy.lang.parser.ParserException:解析器:文件“/Users/sam/Downloads/App/answer.kv”,第 35 行:
...
33: color: 0,1,0,1
34: font_size: 75
>> 35: if app.prior == "yes":
36: print("Hello")
37: text: "Correct"
...
Invalid class name
这是我目前拥有的 蟒:
import kivy
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.lang import Builder
from kivy.uix.image import Image
import random
import os
from kivy.core.window import Window
import numpy as np
from kivy.properties import StringProperty
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
class MyLayout(Widget):
pass
class RootLayout(FloatLayout):
pass
class colorApp(App):
flagfile = StringProperty("0")
path = "/Users/sam/Downloads/App/w320"
files = os.listdir(path)
flagfile= path + "/" + random.choice(files)
prior = StringProperty()
def button_press(self):
self.prior = self.root.ids.user_input.text
return RootLayout()
def build(self):
return RootLayout()
if __name__ == "__main__":
colorApp().run()
基维
<RootLayout>
MyLayout:
BoxLayout:
orientation: "vertical"
size: root.width, root.height
padding: 50
spacing: 20
Image:
id: cardimage
#source: app.flagfile
source: "w320/in.png"
TextInput:
multiline: False
text: "Enter Guess Here"
on_focus: self.text = "" if args[1] else self.text
id: user_input
Button:
text: "Submit"
font_size: 32
on_press: app.button_press()
FloatLayout:
Label:
text:''
pos: 1200, 910
color: 0,1,0,1
font_size: 75
if app.prior == "yes":
print("Hello")
text: "Correct"
答:
0赞
John Anderson
7/25/2023
#1
在 your 中,该行的取消缩进使 kivy 解析器期望实例的新子项。当该行被解释为类时,您会看到该错误。由于您正在尝试设置 的属性,因此应在属性定义中使用该逻辑。这是执行此操作的一种方法:kv
if app.prior == "yes":
FloatLayout
text
Label
text
Label:
pos: 1200, 910
color: 0,1,0,1
font_size: 75
text: "Correct" if app.prior == "yes" else ''
评论