每当我尝试更新应用程序中的标签时,它总是与之前的文本重叠。我不知道我犯了什么错误才会导致这种情况发生。如果有人知道请指导我。 这是 .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()
不确定您到底在期待什么。但是,如果您希望文本换行到其容器中(或者停止溢出),您可以将其
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.
请看一下这个问题 Kivy Label 更新时文字重叠
基本上问题似乎是Python 文件加载了 kv 文件 2 次:
Builder.load_file('rough.kv')
线如果删除
Builder.load_file('rough.kv')
行,或将 App 类重命名为其他名称,一切都应该按预期工作。