Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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 画布未正确对齐_Python_Kivy_Kivymd - Fatal编程技术网

Python 画布未正确对齐

Python 画布未正确对齐,python,kivy,kivymd,Python,Kivy,Kivymd,我正在尝试使用kivy和kivymd制作聊天应用程序,但我遇到了一个问题。我试图在标签小部件之前放置画布,但它没有正确对齐。请帮我解决这个问题 Kivy代码 单击按钮时添加的标签画布正在相互堆叠。请提供帮助。您的圆角角度不在正确位置的原因是在创建MDLabel时设置了位置和大小,因此它使用默认值(0,0)和(100100) 通过为消息定义一个类,您可以利用kivy提供的自动绑定。也许是这样的: class ChatMessage(MDLabel): pass 然后在kv中为该类添加规则

我正在尝试使用kivy和kivymd制作聊天应用程序,但我遇到了一个问题。我试图在标签小部件之前放置画布,但它没有正确对齐。请帮我解决这个问题

Kivy代码


单击按钮时添加的标签画布正在相互堆叠。请提供帮助。

您的
圆角角度
不在正确位置的原因是在创建
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 = ''