每当更新 kivy 中的标签时,标签中的文本就会重叠

问题描述 投票:0回答:3

每当我尝试更新应用程序中的标签时,它总是与之前的文本重叠。我不知道我犯了什么错误才会导致这种情况发生。如果有人知道请指导我。 这是 .py 文件:

import json
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.widget import Widget

Builder.load_file('rough.kv')

class MyLayout(Widget):
    f=open('questions.json')
    global data
    data=json.load(f)
    def printing_questions(self):
        a=0
        question='Blue whale is a large animal'
        self.ids.question.text=''
        self.ids.question.text=question #i am changing text here, but it overlaps

class rough(App):
    def build(self):
        return MyLayout()

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

这是 .kv 文件:

#:kivy 2.1.0
<MyLayout>:
    BoxLayout:
        orientation:'vertical'
        size:root.width,root.height
        Label:
            id:question #in this label i am updating the text
            text:'Questions coming soon...444444444444442222222222222222ssssssssss\n555555555555211111assssssssss'
            multiline:True

        Button:
            text:'Next'
            on_release:
                root.printing_questions()
python kivy kivy-language
3个回答
0
投票

不确定您到底在期待什么。但是,如果您希望文本换行到其容器中(或者停止溢出),您可以将其

text_size
属性修改为,

        Label:
            id:question #in this label i am updating the text
            text:'Questions coming soon...444444444444442222222222222222ssssssssss\\n555555555555211111assssssssss'
            halign: "center" # To set in the middle.
            text_size: self.width, None # Extends upto it's width.

0
投票

前面的文本是:“你好,我的名字是 mrsomethng”,当我用“法拉利模型的原始颜色是什么”更新标签时,它们都是重叠的。 我只想显示更新后的标签而不是之前的文本


0
投票

请看一下这个问题 Kivy Label 更新时文字重叠

基本上问题似乎是Python 文件加载了 kv 文件 2 次

  • 第一次使用
    Builder.load_file('rough.kv')
    线
  • 第二次使用命名约定,例如将您的 .kv 文件命名为“rough.kv”,将 App 类命名为“rough”

如果删除

Builder.load_file('rough.kv')
行,或将 App 类重命名为其他名称,一切都应该按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.