有没有一种简单的方法可以为 Kivy 按钮添加边框

Posted

技术标签:

【中文标题】有没有一种简单的方法可以为 Kivy 按钮添加边框【英文标题】:Is there a simple way to add a border to Kivy Buttons 【发布时间】:2019-02-18 00:42:03 【问题描述】:

我正在使用python-2.7kivy。有人可以告诉我如何为 kivy 按钮添加不同颜色的边框。

test.py

from kivy.uix.screenmanager import Screen
from kivy.app import App
from kivy.core.window import Window

Window.clearcolor = (0.5, 0.5, 0.5, 1)
Window.size = (300, 100)


class User(Screen):
    pass


class Test(App):

    def build(self):
        return self.root


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

test.py

User:
    BoxLayout:

        Button:
            background_normal: ''
            text: 'Ok'

【问题讨论】:

【参考方案1】:

我想你的意思是 additionnaly 到当前背景/边框。

如果是这样,您可能想使用一些画布指令。

您可能希望将它们添加到 canvas.before 中,以便将其绘制在 按钮文本之前。

您将使用的指令取决于您想要的效果,但 Line 可能是一个好的开始。

Button:
    text: 'test'
    canvas.before:
        Color:
            rgba: .5, .5, .5, 1
        Line:
            width: 2
            rectangle: self.x, self.y, self.width, self.height

【讨论】:

【参考方案2】:

您可能想查看 Button 类的边框属性,基本上: 在基夫:

Button:
        border: (10,10,10,10)

我相信这会是BorderImage使用的边框图片

免责声明:未经测试,但遵循这些原则

【讨论】:

【参考方案3】:

你可以使用 kivymd 在 .py 文件中

from kivymd.app import MDApp
Window.clearcolor = (0.5, 0.5, 0.5, 1)
Window.size = (300, 100)

class User(Screen):
     pass

class Test(MDApp):
    def build(self):
        return self.root


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

和.kv

MDRectangleFlatButton:
        background_normal: ''
        text: 'Ok'

【讨论】:

以上是关于有没有一种简单的方法可以为 Kivy 按钮添加边框的主要内容,如果未能解决你的问题,请参考以下文章

有没有一种简单的方法可以在 Android 视图的顶部和底部添加边框?

在 kivy2 或 kivymd 中,有没有一种方法可以动态创建屏幕而不将它们添加到 kv 文件中

如何在android中为按钮添加边框[重复]

为按钮添加边框和阴影

Kivy - 为reStructuredText创建样式按钮

Kivy Scatter z-index