将label的文本更改为json文件中的值,但当我运行程序时,label是blan

2024-09-30 10:35:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉python和kivy。我正在尝试做一个小程序,其中标签的文本将是来自vocab的值_words.json文件在

但是我得到了一个空白标签,并且我认为inpuut()函数正在运行,尽管我已经调用了它。 告诉我我的代码有什么问题 另外,如何将标签的文本更改为json文件中的值。在

这是我的代码:

import kivy
kivy.require('1.10.0')

from kivy.uix.label import Label
from kivy.app import App 
from kivy.uix.widget import Widget
from kivy.properties import StringProperty
from kivy.uix.boxlayout import BoxLayout

class Lab(BoxLayout):
    the_value= StringProperty()     
    def  inpuut(self):
        with open('vocab_words.json') as rfile:
            data=json.load(rfile)

        the_value=data[0]['word']


class main(App):
    def build(self):
        return Lab()

m = main()
m.run()

下面是kivy代码:

^{pr2}$

我会很感激你的帮助。在


Tags: 文件代码from文本importjsonapp标签
1条回答
网友
1楼 · 发布于 2024-09-30 10:35:21

on_text属性不存在,因此它没有帮助。对于您的情况,有两种可能性:

  • 使用函数指定文本:

*.py

import kivy
kivy.require('1.10.0')

from kivy.app import App 
from kivy.uix.boxlayout import BoxLayout
import json

class Lab(BoxLayout):   
    def  inpuut(self):
        with open('vocab_words.json') as rfile:
            data=json.load(rfile)
            return data[0]['word']

class main(App):
    def build(self):
        return Lab()

m = main()
m.run()

*.kv

^{pr2}$
  • 或使用StringProperty

*.py

import kivy
kivy.require('1.10.0')

from kivy.app import App 
from kivy.properties import StringProperty
from kivy.uix.boxlayout import BoxLayout
import json

class Lab(BoxLayout): 
    the_value= StringProperty()     
    def  __init__(self, *args):
        BoxLayout.__init__(self, *args)
        with open('vocab_words.json') as rfile:
            data=json.load(rfile)
            self.the_value = data[0]['word']

class main(App):
    def build(self):
        return Lab()

m = main()
m.run()

*.kv

<Lab>:
    BoxLayout:
        Label:
            id: L
            text: root.the_value
        Label:
            text: "something"

相关问题 更多 >

    热门问题