2014-11-22 8 views
0

CSS를 통해 스타일을 적용하기 위해 복잡한 코드를 얻으려고하고 있지만 스타일을 적용 할 수 없습니다. 다음은 작동하지 않는 코드의 예입니다.혼란 단계에 CSS를 적용하려면 어떻게해야합니까?

#!/usr/bin/python 
from gi.repository import Clutter, GdkPixbuf, Cogl, Gtk, Gdk 

Clutter.init([]) 
stage = Clutter.Stage() 
stage.set_size(600, 300) 

pixbuf = GdkPixbuf.Pixbuf.new_from_file('menu.svg') 
pixel_format = Cogl.PixelFormat.RGBA_8888 if pixbuf.get_has_alpha() \ 
    else Cogl.PixelFormat.RGB_888 

image = Clutter.Image() 
image.set_data(pixbuf.get_pixels(), pixel_format, pixbuf.get_width(), 
    pixbuf.get_height(), pixbuf.get_rowstride()) 

image_actor = Clutter.Actor() 
image_actor.set_content_scaling_filters(
    Clutter.ScalingFilter.TRILINEAR, 
    Clutter.ScalingFilter.LINEAR 
) 
image_actor.set_content(image) 
image_actor.set_size(22,22) 
image_actor.set_name("MyImage") 
stage.add_child(image_actor) 

css = """ 
#MyImage { 
    icon-shadow: red 0px 0px 30px; 
    background-color: #000000; 
    margin: 10px; 
} 
""" 
style_provider = Gtk.CssProvider() 
style_provider.load_from_data(css) 

# This is the part that doesn't work 
Gtk.StyleContext.add_provider_for_screen(
    Gdk.Screen.get_default(), 
    style_provider, 
    Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION 
) 

stage.connect("destroy", lambda w: Clutter.main_quit()) 
stage.show() 
Clutter.main() 

여러 가지 시도를했지만 스타일이 적용되지 않습니다.

답변

1

클러 터는 GTK + 또는 CSS에 대해 아무것도 모르기 때문에 클러 터와 함께 GTK + CSS 기계를 사용할 수 없습니다. 당신이 ClutterActor 내부에 무언가를 그리기 위해 GtkStyleContext와 GTK + API를 사용하려는 경우

, 당신은 ClutterCanvas 콘텐츠를 사용하고 ClutterCanvas::draw 신호를 제공 카이로 컨텍스트로 gtk_render_* API를 사용할 수 있습니다.