如何在 python 中将大小设置为 texture_size

how to set size to texture_size in python

所以这是 .kv 代码:

Button:
    id:last_message_2
    text:''
    font_size:18
    background_normal:'textures/message.png'
    size_hint_x:None
    size: self.texture_size
    pos_hint:{'right': 1}
    padding:(9, 0)
    opacity:0
    on_release: root.onClick("send_rcnt2")

我想做的是制作一个自定义按钮小部件,如下所示:

class MessageBubble(Button):

    def __init__(self, **kwargs):

        super(MessageBubble, self).__init__(**kwargs)

        self.text = "Hello World"
        self.font_size = 18
        self.background_normal = "textures/message.png"
        self.size_hint_x = None
        self.size = self.texture_size
        self.pos_hint = {'right': 1}
        self.padding = (9, 0)
        self.opacity = 0

.kv 文件中只剩下这个:

MessageBubble:
    id:last_message_1
    on_release: root.onClick("send_rcnt1")

但是当我 运行 代码时,我得到一个非常小的按钮,文本越界 当我调试时,我知道 texture_size 没有动态更新

我现在可以做什么?

MessageBubble的kv规则中需要设置size,因为self.texture_size变化时需要更新。您也可以通过在 python.

中创建绑定来手动执行此操作