我不熟悉 clutter(和 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),我将不胜感激。
请您参考如下方法:
这行不通,因为 cogl 是使用 OpenGL 的抽象。在 OpenGL 世界中,必须为每一帧绘制。这意味着,您的代码将只执行一次,一旦窗口翻转,您就看不到该行。 您可以为此创建一个自定义 actor,并将您的指令放入 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()
然后,在您的示例中像文本 Actor 一样使用它:
stage.add(MyDrawing())
