Программирование с использованием 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).

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()

И затем, используйте его в вашем примере как текстовый актер:

stage.add(MyDrawing())
Другие вопросы по тегам