图形

画布简介

Widgets 图形表示是使用画布呈现的,您可以将其视为无限的绘图板或一组绘图指令。您可以将许多说明应用(添加)到您的画布上,但主要有两个变体:

上下文指令不绘制任何内容,但它们会更改顶点指令的结果。

画布可以包含两个指令子集。他们是 canvas.beforecanvas.after指令组。这些组中的指令将canvas分别在该组之前和之后执行。这意味着它们将出现在它们的下方(之前执行)和上方(之后执行)。在用户访问它们之前,不会创建这些组。

要向小部件添加画布指令,您可以使用画布上下文:

class MyWidget(Widget):
    def __init__(self, **kwargs):
        super(MyWidget, self).__init__(**kwargs)
        with self.canvas:
            # add your instruction for main canvas here

        with self.canvas.before:
            # you can use this to add instructions rendered before

        with self.canvas.after:
            # you can use this to add instructions rendered after

上下文说明

上下文指令操作 opengl 上下文。您可以旋转、平移和缩放画布。您还可以附加纹理或更改绘图颜色。这个是最常用的,但其他的也很有用:

绘图说明

绘图指令范围从非常简单的指令,如绘制直线或多边形,到更复杂的指令,如网格或贝塞尔曲线:

操作指令

有时您想要更新或删除已添加到画布的说明。这可以根据您的需要以多种方式完成:

您可以参考您的说明并更新它们:

或者您可以清理画布并重新开始:

请注意,更新指令被认为是最佳实践,因为它涉及更少的开销并避免创建新指令。

Last updated