如何将画布添加到布局(python kivy)

2024-09-29 21:27:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在布局中添加一些画布,但是当我启动这个小代码时,它会写下“black”屏幕。。。在

我使用kivy1.10和python3.6.4

有人能帮我吗?在

以下代码:

from kivy.app import App
from kivy.graphics import Color,Bezier
from kivy.uix.anchorlayout import AnchorLayout

class AncLayout(AnchorLayout):  
    with AnchorLayout().canvas:
        Color(.1,.88,.71,.57)
        Bezier(points = (100,100,70,70,40,70,100,100),    
               segments = 120,
               dash_length = 9,
               dash_offset = 3)

class MasterApp(App):
    def build(self):
        return AncLayout()  


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

非常感谢您的帮助)


Tags: 代码fromimportapp画布布局classcolor
1条回答
网友
1楼 · 发布于 2024-09-29 21:27:09

问题是,您正在将曲线添加到您已经创建但尚未添加到应用程序的AnchorLayout中,下一行AnchorLayout().canvas将创建一个新的Anchorlayout。必须在构造函数中执行此任务:

from kivy.app import App
from kivy.graphics import Color,Bezier
from kivy.uix.anchorlayout import AnchorLayout

class AncLayout(AnchorLayout):
    def __init__(self, *args, **kwargs):
        AnchorLayout.__init__(self, *args, **kwargs)
        with self.canvas:
            Color(.1,.88,.71,.57)
            Bezier(points = (100,100,70,70,40,70,100,100),    
                   segments = 120,
                   dash_length = 9,
                   dash_offset = 3)

class MasterApp(App):
    def build(self):
        return AncLayout()  


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

enter image description here

相关问题 更多 >

    热门问题