【问题标题】:Python binding for clutter-gtk and clutter-gskclutter-gtk 和 clutter-gsk 的 Python 绑定
【发布时间】:2011-11-07 08:13:26
【问题描述】:

我正在使用 python 并希望在混乱阶段嵌入 gtk3 小部件。但是,pyclutter-gtkpyclutter-gsk 似乎已经停止了一段时间。我们可以在 python 中使用任何替代绑定吗? 我试过谷歌但没有运气。只有一个项目 (http://code.google.com/p/pyclutter-widgets/) 看起来很有趣,但它已经闲置了一年......

【问题讨论】:

    标签: python gtk clutter


    【解决方案1】:

    gtk3 和 clutter 的所有 python 绑定都已移至基于自省的 pygobject;您应该能够使用 pygobject >= 2.30 中的 Clutter-Gtk 和 Clutter-Gst,只需执行以下操作:

    from gi.repository import GtkClutter

    您可以关注Gnome wiki entry for IntrospectionPorting 上的文档。

    【讨论】:

    • 感谢您的回复。它适用于 Clutter,但在导入 ClutterGtk 时出现 ImportError。仅供参考,我将 ubuntu 11.10 与 gnome3 和 python 2.7 一起使用。我已经安装了 libclutter-gtk-1.0*。有什么线索吗?
    • 嗯... GtkClutter 有效,但 ClutterGtk 无效。我想我已经安装了 gir1.2-gtkclutter-1.0。
    【解决方案2】:

    以下是使用 Clutter-gtk 1.2.x 和 python-3.x 将 GtkClutter 舞台和 scrollActor 添加到 Gtk.HBox 的方法

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

    【讨论】:

      猜你喜欢
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多