0

我正在尝试在 recycleview 中显示 json 文件中的项目列表,但应用程序返回一个空白屏幕。当我从“MDApp”更改为普通的 kivy“App”时,列表会正确显示。我想将此代码包含在 MDApp 中,因为我正在使用多个 kivymd 小部件。知道为什么会这样吗?

这是我的简化代码:

示例.py

from kivy.app import App # it works with this
from kivymd.app import MDApp #blank screen with this
from kivy.lang import Builder
import json
from kivy.uix.recycleview import RecycleView


def load_pricewatch_data():
    with open ('data/HS_data.json') as pwdata:
        pricewatch_data =json.load(pwdata)
    return pricewatch_data 

data_items = load_pricewatch_data()    

class RV(RecycleView):
    def __init__(self, **kwargs):
        super(RV, self).__init__(**kwargs)
        self.data = [
            {'text': str(value),
            'id': id} 
            for id,value in data_items["Product name"].items()]
 
class SampleApp(MDApp): #works with App, but displays blank like this
    def build(self):
        Builder.load_file('sample.kv')
        return RV()

if __name__ == '__main__':
    SampleApp().run()

样本.kv

<RV>:
    viewclass: 'Label'
    RecycleBoxLayout:
        default_height: 3
        default_size_hint: 1, None
        size_hint_y: None    
        height: self.minimum_height
        orientation: 'vertical'

我的 json 文件是从数据框派生的,它具有以下格式:HS_data.json

{"Product name":
{"0":"product1", "1":"product2", "2":"procuct3"}, 
"Price":{"0":"price1","1":"price2","2":"price3"}
}
4

0 回答 0