Привязка Python для clutter-gtk и clutter-gsk

Я использую python и хочу встроить виджеты gtk3 на этапе беспорядка. Однако кажется, что pyclutter-gtk и pyclutter-gsk временно остановлен. Есть ли альтернативная привязка, которую мы можем использовать в python? Я пробовал Google, но безуспешно. Есть только один проект (http://code.google.com/p/pyclutter-widgets/) кажется интересным, но он неактивен уже год...


person Derek Wu    schedule 07.11.2011    source источник


Ответы (2)


Все привязки python для gtk3 и clutter были перемещены в основанный на самоанализе pygobject; вы сможете использовать Clutter-Gtk и Clutter-Gst из pygobject >= 2.30, просто выполнив:

from gi.repository import GtkClutter

Вы можете следить за документацией в вики-записи Gnome для IntrospectionPorting.

person ebassi    schedule 07.11.2011
comment
Спасибо за ответ. Это работает для Clutter, но я получил ImportError при импорте ClutterGtk. К вашему сведению, я использую Ubuntu 11.10 с gnome3 и Python 2.7. Я установил libclutter-gtk-1.0*. Любая подсказка? - person Derek Wu; 07.11.2011
comment
Ну... GtkClutter работает, но не ClutterGtk. Я понял, что установил gir1.2-gtkclutter-1.0. - person Derek Wu; 07.11.2011

Вот как добавить этап GtkClutter и scrollActor в Gtk.HBox с помощью Clutter-gtk 1.2.x и python-3.x.

from gi.repository import Gtk, Gdk, GtkClutter, Clutter   

class EmbeddedGtkClutterStageWithScrollActor(Gtk.Window): 

    def __init__(self):
        super(EmbeddedGtkClutterStage, self).__init__()

        # Initialise GtkClutter
        GtkClutter.init(sys.argv)


        self.connect('destroy', lambda w: Gtk.main_quit())

        self.set_default_size(1024, 768)
        self.override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(0, 0, 0, 1))

        display = Gdk.Display.get_default()
        screen = display.get_default_screen()
        css_provider = Gtk.CssProvider()

        css_provider.load_from_path('style.css')
        context = Gtk.StyleContext()
        context.add_provider_for_screen(screen, css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) 


        hbox = Gtk.HBox(False, 2)
        vbox.add(hbox)

        # Create Clutter Stage 
        embed = GtkClutter.Embed()    

        hbox.add(embed)
        embed.set_size_request(900, 500)

        stage = embed.get_stage()
        # set stage color to black
        stage.set_color(Clutter.Color.new(0, 0, 0, 255))

        # Create a Scrollable Actor and add to the Stage
        scrollActor = Clutter.ScrollActor()

        scrollActor.set_scroll_mode(Clutter.ScrollMode.HORIZONTALLY)
        stage.add_actor(scrollActor)

        # scroll the scrollActor to x/y coords 
        point = Clutter.Point()
        point.x = 50
        point.y = 100
        scrollActor.scroll_to_point(point) 

        hbox.show_all()


EmbeddedGtkClutterStageWithScrollActor()
Gtk.main()
person boosth    schedule 13.11.2012