首页 > 解决方案 > 为什么 garden.scrolllabel 模块给我错误“无法将字符串转换为浮点数”?

问题描述

我对 garden.scrolllabel 包有疑问。

我在其他堆栈溢出问题中看到,获得包含大量内容的滚动视图的一种方法是使用 garden.scrolllabel。但是当我尝试使用它时,在我的电脑上(以及在使用 buildozer 的构建中)它给了我错误:

child = cls(__no_builder=True) 文件“kivy_event.pyx”,第 190 行,在 kivy._event.EventDispatcher 中。cinit 文件“ kivy \properties.pyx”,第 448 行,在 kivy.properties.Property.link 文件“kivy\properties.pyx”,第 633 行,在 kivy.properties.NumericProperty.init_storage 文件“kivy\properties.pyx”,第 419 行,在 kivy.properties.Property.init_storage 文件“kivy\properties.pyx”,第 656 行,在 kivy.properties.NumericProperty.convert 文件“kivy\properties.pyx”,第 666 行,在 kivy.properties.NumericProperty。 parse_str ValueError:无法将字符串转换为浮点数:

值错误。如果我运行模块的 github 存储库中的示例,也会发生同样的情况。我看到模块中有一些类似的问题,但从未修复它。我的问题是,我可以以某种方式修复此错误以使用 garden.srolllabel 吗?自从花朵发布以来,我想这仅取决于机器或版本(我想该软件包实际上可以工作)。有一些建议可以解决这个问题吗?

我在这里报告引起我错误的代码:

__version__ = "1.0"
from kivy.app import App
from kivy.lang import Builder
from kivy.garden.scrolllabel import ScrollLabel
LOREM = """Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Curabitur nec arcu accumsan, lacinia libero sed, cursus nisi. 
Curabitur volutpat mauris id ornare finibus. Cras dignissim arcu 
viverra, bibendum est congue, tempor elit. Vivamus luctus sapien 
sapien, id tincidunt eros molestie vitae. Lorem ipsum dolor sit amet, 
consectetur adipiscing elit. Ut commodo eget purus vel efficitur. 
Duis facilisis ex dolor, vel convallis odio pharetra quis. Vivamus eu 
suscipit tortor. Proin a tellus a nisl iaculis aliquam. Nam tristique 
ipsum dui, ut faucibus libero lacinia id. Pellentesque eget rhoncus 
justo, quis interdum eros. Suspendisse felis lorem, gravida in orci 
ac, auctor malesuada turpis. Fusce dapibus urna dolor, id viverra 
enim semper a. Proin dignissim neque quis ante commodo feugiat.
Duis dictum sagittis urna nec dapibus. Vestibulum ac elit vel nunc 
euismod lobortis. Vivamus sit amet tortor in diam consectetur 
ultrices vitae vulputate leo. Aenean vehicula orci leo, eget 
fringilla enim condimentum eget. Sed sapien lacus, vulputate nec 
ligula eget, luctus feugiat risus. Nullam ultricies quam ac metus 
imperdiet, eget scelerisque dolor commodo. Ut nec elementum orci. C 
ras massa lacus, consectetur varius est a, congue pulvinar magna. 
Proin nec sapien facilisis, tristique turpis vel, malesuada leo. 
Phasellus faucibus justo vel risus tristique, in laoreet ligula 
vestibulum. Vestibulum varius eget nibh nec convallis. Morbi eu diam 
at turpis mollis hendrerit. Aenean sed turpis lectus.
Suspendisse pharetra ligula nec faucibus mattis. Aliquam et felis 
eget augue efficitur aliquam viverra ut tellus. Aliquam sagittis ut 
sapien venenatis condimentum. Quisque in turpis ac nisi vehicula 
commodo vel porttitor erat. Maecenas lobortis, sapien dictum congue 
gravida, nulla urna ultricies lorem, at tincidunt ex arcu nec eros. 
Maecenas egestas a augue sit amet euismod. Praesent ut sapien metus.    
urabitur lorem erat, consectetur quis rhoncus quis, tristique ac 
ligula. Suspendisse justo magna, cursus id mauris et, lacinia egestas 
neque.
Suspendisse bibendum sit amet est eget ullamcorper. Duis pellentesque 
tristique nisi. Donec id dolor eget arcu lobortis sollicitudin vel et 
justo. Vivamus vel risus eget felis condimentum tempus ac sed dui. D  
onec placerat risus quis metus auctor sagittis. Pellentesque vel sem 
dolor. Praesent erat eros, facilisis placerat ultrices et, interdum 
quis risus. Donec eleifend risus dapibus, laoreet felis ut, fermentum 
neque. Aenean purus elit, congue non tempus quis, dictum quis metus. 
Maecenas finibus rutrum bibendum. Ut vestibulum dapibus felis vel 
luctus. Aliquam vitae consequat eros, quis ultricies tortor. Quisque 
eu accumsan erat, id commodo nisi.
tiam nec risus porttitor, placerat est et, facilisis diam. Etiam vel 
feugiat ligula. Aliquam at quam congue, lacinia velit nec, congue 
nibh. In varius quis elit vel sollicitudin. Vivamus molestie 
elementum ipsum et vehicula. Etiam non augue quis tortor ultrices 
maximus. Etiam vel blandit nibh. Nullam facilisis posuere erat vel 
mattis. Vestibulum mattis condimentum purus efficitur vehicula. 
Aliquam consequat interdum eros eu semper. Etiam feugiat, erat at 
tempor tincidunt, odio eros maximus sapien, sit amet lacinia nibh 
tortor quis dui. In hac habitasse platea dictumst.
"""
KV_EXAMPLE = """
#: import LOREM __main__.LOREM
BoxLayout:
    orientation: "vertical"
    Label:
        text: "ScrollLabel Demo"
        size_hint_y: None
        height: "48sp"

    ScrollLabel:
        id: sl
        text: LOREM * int(sl_count.value)
        font_size: sl_fontsize.value

    BoxLayout:
        size_hint_y: None
        height: "48sp"
        Label:
            text: "Text count"
            size_hint_x: None
            width: self.texture_size[0] + dp(48)
        Slider:
            id: sl_count
            min: 1
            max: 20
            value: 1
            step: 1

    BoxLayout:
        size_hint_y: None
        height: "48sp"
        Label:
            text: "Font size"
            size_hint_x: None
            width: self.texture_size[0] + dp(48)
        Slider:
            id: sl_fontsize
            min: sp(8)
            max: sp(100)
            value: sp(14)

    BoxLayout:
        size_hint_y: None
        height: "48sp"
        Label:
            text: "Alignment"
            size_hint_x: None
            width: self.texture_size[0] + dp(48)
        Button:
            text: "Left"
            on_press: sl.halign = "left"
        Button:
            text: "Center"
            on_press: sl.halign = "center"
        Button:
            text: "Right"
            on_press: sl.halign = "right"
"""
class TestScrollLabel(App):
    def build(self):
        return Builder.load_string(KV_EXAMPLE)
if __name__ == "__main__":
    TestScrollLabel().run()

标签: kivy

解决方案


推荐阅读