Kivy儿童手册

2024-10-01 07:41:03 发布

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

因此,如果我有一个包含几个子窗口小部件实例的布局,那么父窗口小部件如何以及何时确保它们都被绘制到屏幕上?假设我们的孩子正在以某种简单的方式被激活,所以他们需要不断地更新。你知道吗

如果ParentLayout类大致如此:

class ParentLayout(ScatterLayout):
    def __init__(self):
        #
        with self.canvas.before:
            #hook A
            #switchout framebuffer here?
            pass
        with self.canvas:
            #hook B
            pass
        with self.canvas.after:
            #hook C
            #recover framebuffer with just this Widget?
            pass

Q1:子可提取项是否最终被吸引到parent.canvasA1:不,他们不是。画布上充满了指令;它不是缓冲区。你知道吗

似乎孩子们会被画在hook B的某个地方,但我没有办法证实或测试这一点。你知道吗

我基本上是在尝试截取屏幕截图某些小部件组,这些小部件刚刚被渲染到缓冲区之后。我要检索一个表示ParentLayout及其子级画布的纹理。。。不多不少。你知道吗


Tags: 实例self屏幕部件画布with绘制孩子
1条回答
网友
1楼 · 发布于 2024-10-01 07:41:03

Widget已经有了一个执行此操作的方法Widget.export_to_png。你知道吗

画布最终是一个有序的指令列表(映射到opengl指令)。绘制屏幕涉及遍历此列表,并且保证每帧发生一次,因此通常一个简单的解决方案是Clock.schedule\u一次(您的函数,0),它应该在渲染完所有内容后运行下一帧。你知道吗

相关问题 更多 >