Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ScrollLabel产生ValueError_Python_Python 3.x_Kivy_Kivy Language - Fatal编程技术网

Python ScrollLabel产生ValueError

Python ScrollLabel产生ValueError,python,python-3.x,kivy,kivy-language,Python,Python 3.x,Kivy,Kivy Language,我是这个网站的新手,所以如果我做错了什么事,我会提前道歉。kivy garden的ScrollLabel在我尝试使用它时给了我一个错误。 基本上,我正在尝试制作一个控制台日志,我需要能够滚动文本框,因为它填充。我尝试了scrollview小部件,但当我显示太多文本时,它会产生一个黑屏。 即使使用示例ScrollLabel,也会出现相同的错误 __version__ = "1.0" from kivy.app import App from kivy.lang import

我是这个网站的新手,所以如果我做错了什么事,我会提前道歉。kivy garden的ScrollLabel在我尝试使用它时给了我一个错误。 基本上,我正在尝试制作一个控制台日志,我需要能够滚动文本框,因为它填充。我尝试了scrollview小部件,但当我显示太多文本时,它会产生一个黑屏。 即使使用示例ScrollLabel,也会出现相同的错误


__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. Cras 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. Curabitur 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. Donec 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.
Etiam 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()
我收到的错误是:

 Traceback (most recent call last):
   File "/home/fodderpod/Apps/FPCU-02/GUI/main.py", line 184, in <module>
     presentation = Builder.load_file("mainScreenHolder.kv")
   File "/usr/local/lib/python3.7/dist-packages/kivy/lang/builder.py", line 301, in load_file
     return self.load_string(data, **kwargs)
   File "/usr/local/lib/python3.7/dist-packages/kivy/lang/builder.py", line 405, in load_string
     rule_children=rule_children)
   File "/usr/local/lib/python3.7/dist-packages/kivy/lang/builder.py", line 657, in _apply_rule
     root=rctx['ids']['root'], rule_children=rule_children)
   File "/usr/local/lib/python3.7/dist-packages/kivy/uix/widget.py", line 469, in apply_class_lang_rules
     rule_children=rule_children)
   File "/usr/local/lib/python3.7/dist-packages/kivy/lang/builder.py", line 538, in apply
     rule_children=rule_children)
   File "/usr/local/lib/python3.7/dist-packages/kivy/lang/builder.py", line 659, in _apply_rule
     child, crule, rootrule, rule_children=rule_children)
   File "/usr/local/lib/python3.7/dist-packages/kivy/lang/builder.py", line 654, in _apply_rule
     child = cls(__no_builder=True)
   File "kivy/_event.pyx", line 188, in kivy._event.EventDispatcher.__cinit__
   File "kivy/properties.pyx", line 447, in kivy.properties.Property.link
   File "kivy/properties.pyx", line 632, in kivy.properties.NumericProperty.init_storage
   File "kivy/properties.pyx", line 418, in kivy.properties.Property.init_storage
   File "kivy/properties.pyx", line 655, in kivy.properties.NumericProperty.convert
   File "kivy/properties.pyx", line 665, in kivy.properties.NumericProperty.parse_str
 ValueError: could not convert string to float:
^C
[11]+  Exit 1                  python3 /home/fodderpod/Apps/FPCU-02/GUI/main.py

scrollable
即使对于最基本的示例,也会产生相同的错误

from kivy.app import App
from kivy.lang import Builder
from kivy.garden.scrolllabel import ScrollLabel

KV_EXAMPLE = """
ScrollLabel:
    text: "abc"
"""

class TestScrollLabel(App):
    def build(self):
        return Builder.load_string(KV_EXAMPLE)

if __name__ == "__main__":
    TestScrollLabel().run()
因此,这肯定有问题。可能是某种依赖关系破裂了


更新:

也许你可以用recycleview试试运气。您仍然需要正确计算标签的大小。我目前使用的固定宽度可能并不理想

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.recycleview import RecycleView
from kivy.core.window import Window

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. Cras 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. Curabitur 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. Donec 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.
Etiam 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.
"""


Builder.load_string('''
#: import window __main__.Window
<RV>:
    viewclass: 'LabelLong'
    RecycleBoxLayout:
        size_hint_y: None
        height: self.minimum_height
        orientation: 'vertical'

<LabelLong@Label>:
    text_size: 800, None
    size: self.texture_size
''')

class RV(RecycleView):
    def __init__(self, **kwargs):
        super(RV, self).__init__(**kwargs)
        self.data = [{'text': LOREM} for x in range(100)]


class TestApp(App):
    def build(self):
        return RV()

if __name__ == '__main__':
    TestApp().run()
从kivy.app导入应用
从kivy.lang导入生成器
从kivy.uix.recycleview导入recycleview
从kivy.core.window导入窗口
LOREM=“”“Lorem ipsum dolor sit amet,献祭精英。库拉比图尔·内克·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·。库拉比图尔·帕特·莫里斯·奥纳雷·菲尼布斯。生活中的显贵,生活中的精英。维瓦摩斯·卢克图斯·萨皮恩·萨皮恩,我是爱神·莫莱斯蒂·维塔。Lorem ipsum dolor sit amet,是一位杰出的献身者。这是一种非常有效的方法。两人一组,一人一组,一人一组。维瓦姆斯欧盟代位侵权人。这是一个很好的例子。我是一对酒后驾车者,我是一个自由的拉丁美洲人,我是佩伦茨克·朗卡斯·胡斯托,我是一个爱的人。猫咪lorem Suspendisse,奥奇ac的孕妇,拍卖人malesuada turpis。我是维韦拉·埃尼姆·森佩尔。这是一个值得尊敬的贵族。
两种不同的表达方式。前庭,上腭前庭,上腭前庭,上腭前庭。维瓦摩斯坐在阿梅特·托托(amet tortor)的旁边,他是狮子座的救世主。埃尼亚奥奇狮子座汽车,埃吉特弗林利亚埃尼姆调味品埃吉特。他是一位智者,他是一位智者。这是一种不安全的饮食,是一种不安全的饮食。这是一种新的元素。这是一个巨大的脉冲群。在新的智者设施,特里斯蒂克turpis vel,malesuada leo。在laoreet舌苔前庭的Phasellus faucibus justo vel risus tristique。前庭静脉曲张。莫利斯·亨德雷特turpis mollis hendrerit的Morbi eu diam。埃尼安·塞德·图皮斯·莱克图斯。
法雷特拉舌苔悬钩子。阿利夸姆和菲利斯·埃吉特·奥古斯特·阿利夸姆·维韦拉和泰勒斯的效率。巴西慈姑调味汁。在turpis ac nisi车辆上的Quisque,通常用于港口。梅塞纳斯·洛博蒂斯,一位智者,一位孕妇,一位不可告人的人,在一个充满希望的地方。梅塞纳斯·埃吉斯塔是一位奥古斯特·埃米特·尤伊斯莫。这是我们的智慧所在。库拉比图尔·洛雷姆·埃拉特、康塞特图尔·奎斯·朗卡斯·奎斯、特里斯提克·艾克·利古拉。朱斯托·麦格纳、毛里斯和拉齐尼亚·埃格斯塔斯·内克。
这是一个很好的例子。我是佩伦茨克·特里斯蒂克·尼西。我们必须在平等和公正的基础上解决问题。猫咪调味品,即食,酒后饮用。Donec placerat risus quis metus auctor sagittis。Pellentesque vel sem dolor。在爱神面前,要有一套设施,一套设备,一套设备。Donec eleifend risus dapibus,laoreet felis ut,发酵罐neque。埃尼安·普鲁斯精英、康格·非坦普斯精英、格言精英。龙须草。猫的前庭。爱是生命的代价,是侵权人的后果。我是一个普通人。
无门静脉曲张,静脉曲张,静脉曲张,静脉曲张,静脉曲张,静脉曲张,静脉曲张,静脉曲张,静脉曲张,静脉曲张,静脉曲张,静脉曲张,静脉曲张,静脉曲张,静脉曲张,静脉曲张,静脉曲张。叶舌。康格码头、拉齐尼亚韦利特nec、康格尼布码头。在瓦里乌斯-奎斯-埃利特维尔-索利西图丁。同侧肢体和交通工具的胎动。我不是最大的侵权者。这是一种温和的生活方式。不提供任何设施。前庭马蒂斯调味品purus Efficitiur vehicula。这是一个很好的例子。埃蒂亚姆·费吉亚特(Etiam feugiat),在临时法庭上的埃拉塔(erat at tempor tincidunt),奥迪奥·厄洛斯·马克西姆·萨皮恩(odio eros maximus sapien),坐在一对夫妇面前。在hac habitasse Plateum,一句名言。
"""
Builder.load_字符串(“”)
#:导入窗口\uuuu主\uuuuu.window
:
viewclass:“LabelLong”
循环利用布局:
尺寸提示:无
高度:自身最小高度
方向:“垂直”
:
文本大小:800,无
大小:self.texture\u大小
''')
RV级(回收利用审查):
定义初始(自我,**kwargs):
超级(RV,自我)。\uuuuu初始值(**kwargs)
self.data=[{'text':LOREM}表示范围(100)内的x
类TestApp(应用程序):
def生成(自):
返回RV()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
TestApp().run()

滚动标签
即使对于最基本的示例也会产生相同的错误

from kivy.app import App
from kivy.lang import Builder
from kivy.garden.scrolllabel import ScrollLabel

KV_EXAMPLE = """
ScrollLabel:
    text: "abc"
"""

class TestScrollLabel(App):
    def build(self):
        return Builder.load_string(KV_EXAMPLE)

if __name__ == "__main__":
    TestScrollLabel().run()
因此,这一定是出了什么问题。可能是某种依赖关系破裂了


更新:

也许你可以用recycleview试试运气。你仍然需要正确计算标签的大小。我目前使用的固定宽度可能不理想

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.recycleview import RecycleView
from kivy.core.window import Window

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. Cras 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. Curabitur 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. Donec 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.
Etiam 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.
"""


Builder.load_string('''
#: import window __main__.Window
<RV>:
    viewclass: 'LabelLong'
    RecycleBoxLayout:
        size_hint_y: None
        height: self.minimum_height
        orientation: 'vertical'

<LabelLong@Label>:
    text_size: 800, None
    size: self.texture_size
''')

class RV(RecycleView):
    def __init__(self, **kwargs):
        super(RV, self).__init__(**kwargs)
        self.data = [{'text': LOREM} for x in range(100)]


class TestApp(App):
    def build(self):
        return RV()

if __name__ == '__main__':
    TestApp().run()
从kivy.app导入应用
从kivy.lang导入生成器
从kivy.uix.recycleview导入recycleview
从kivy.core.window导入窗口
LOREM=“”LOREM ipsum door sit amet,奉献精英。库拉比图尔·内克·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·阿库·。库拉比图尔·帕特·莫里斯·奥纳雷·菲尼布斯。生活中的显贵,生活中的精英。维瓦摩斯·卢克图斯·萨皮恩·萨皮恩,我是爱神·莫莱斯蒂·维塔。Lorem ipsum dolor sit amet,是一位杰出的献身者。这是一种非常有效的方法。两人一组,一人一组,一人一组。维瓦姆斯欧盟代位侵权人。这是一个很好的例子。我是一对酒后驾车者,我是一个自由的拉丁美洲人,我是佩伦茨克·朗卡斯·胡斯托,我是一个爱的人。菲利斯·洛雷姆,奥奇的孕妇