Skip to main content
 首页 » 编程设计

Python之Kivy 框架之Spinner 值列表

2025年05月04日11JustinYoung

我很难添加从我的数据库中提取的值(语言)列表,并希望它在 Spinner 小部件中作为值列表可用。

python 部分:

 def get_langs(self): 
        session = Session() 
        Base.metadata.create_all(engine) 
        # get active language as text label: 
        result1 = session.query(Language).filter_by(active = 1).first() 
        self.label_lang.text = str(result1) 
        # get all other languages as list of values: 
        result2 = session.query(Language).filter_by(active = 0).all() 
        self.label_lang.values = str(result2) 

kv模板部分:

Spinner: 
    id: settings_lang 
    size_hint: (None, None) 
    width: 200 
    height: 40 
    padding_left: 20 
    self: root.get_langs() 

我正在从我的数据库中提取值列表(通过 sqlalchemy),但是 kv 模板中的“值”属性只接受 str/unicode,因此 str(result2)。但是,我得到的不是语言列表,而是该列表中的字符列表。

[ 乙 n G 升 我 秒 H ,

D 电子 你 吨 秒 C H ]

但我想将这些视为值: 英语 德语

谁能给个建议? 谢谢

请您参考如下方法:

您正在将结果转换为单个字符串,而不是字符串列表。

self.label_lang.values = map(str, result2) 

可能是您想要的。