2011-02-13 46 views
1

我是新来杂乱(和pyclutter)。我一直在尝试使用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)。

回答

0

这不行,因为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() 

,然后用它在你的榜样,如文本演员:

stage.add(MyDrawing()) 
+0

在实例的杂乱包,检查custom-actor.py – tito 2011-03-04 08:58:11