Python 画布未正确对齐
我正在尝试使用kivy和kivymd制作聊天应用程序,但我遇到了一个问题。我试图在标签小部件之前放置画布,但它没有正确对齐。请帮我解决这个问题 Kivy代码Python 画布未正确对齐,python,kivy,kivymd,Python,Kivy,Kivymd,我正在尝试使用kivy和kivymd制作聊天应用程序,但我遇到了一个问题。我试图在标签小部件之前放置画布,但它没有正确对齐。请帮我解决这个问题 Kivy代码 单击按钮时添加的标签画布正在相互堆叠。请提供帮助。您的圆角角度不在正确位置的原因是在创建MDLabel时设置了位置和大小,因此它使用默认值(0,0)和(100100) 通过为消息定义一个类,您可以利用kivy提供的自动绑定。也许是这样的: class ChatMessage(MDLabel): pass 然后在kv中为该类添加规则
单击按钮时添加的标签画布正在相互堆叠。请提供帮助。您的
圆角角度
不在正确位置的原因是在创建MDLabel
时设置了位置和大小,因此它使用默认值(0,0)
和(100100)
通过为消息定义一个类,您可以利用kivy提供的自动绑定。也许是这样的:
class ChatMessage(MDLabel):
pass
然后在kv
中为该类添加规则:
<ChatMessage>:
size_hint: (0.3, 1)
pos_hint: {'center_x': 0.7, 'center_y': 0.5}
canvas.before:
Color:
rgba: (0,1,0,0.7)
RoundedRectangle:
radius: [30,30,30,30]
pos: self.pos
size: self.size
现在,
roundedlectangle
将自动调整为ChatMessage
的大小和位置。谢谢,它成功了
class ChatMessage(MDLabel):
pass
<ChatMessage>:
size_hint: (0.3, 1)
pos_hint: {'center_x': 0.7, 'center_y': 0.5}
canvas.before:
Color:
rgba: (0,1,0,0.7)
RoundedRectangle:
radius: [30,30,30,30]
pos: self.pos
size: self.size
class ChatScreen(Screen):
def send_msg(self):
msg = self.ids.msg.text
if msg=='':
pass
else:
label = ChatMessage(text=msg)
self.ids.chat_area.add_widget(label)
self.ids.msg.text = ''