2

我是混乱(和 pyclutter)的新手。我一直在尝试使用 pyclutter。到目前为止,我还没有找到任何好的教程。我的意思是没有真正正确解释的东西。我看到了几个示例程序,但是当我尝试使用 pyclutter 时,我没有得到任何好的结果。这些命令是可用的,但它们的正确使用是导致问题的原因。我尝试使用 pyclutter 渲染一条线,但甚至无法做到这一点。我的代码:

import clutter
from clutter import cogl

stage = clutter.Stage()
stage.set_size(400, 400)

label = clutter.Text()
label.set_text("line")

stage.add(label)

clutter.cogl.set_source_color4ub (255,0,0,255)
clutter.cogl.path_line(100,100,200,200)
clutter.cogl.path_stroke()

stage.show_all()
stage.connect("destroy",clutter.main_quit)
clutter.main()

我的错误可能真的很愚蠢,但如果有人能指出我可以从中学习混乱(pyclutter)的好教程,我将不胜感激。

4

1 回答 1

1

这不起作用,因为 cogl 是使用 OpenGL 的抽象。在 OpenGL 世界中,必须为每一帧进行绘制。这意味着,您的代码将只执行一次,一旦您的窗口翻转,您将看不到该行。您可以为此创建一个自定义演员,并将您的指令放在 do_paint() 方法中:

class MyDrawing(clutter.Actor):
    __gtype_name__ = 'MyDrawing'
    def do_paint(self):
        clutter.cogl.set_source_color4ub (255,0,0,255)
        clutter.cogl.path_line(100,100,200,200)
        clutter.cogl.path_stroke()

然后,在您的示例中使用它,例如 Text 演员:

stage.add(MyDrawing())
于 2011-03-04T08:57:13.333 回答