如何将CSS应用于混乱阶段?

2024-04-28 07:18:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让一些杂乱的代码通过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()

我试过几种不同的方法,但这种风格从来没有得到应用。在


Tags: 代码fromimagegtkgetstyle样式provider
1条回答
网友
1楼 · 发布于 2024-04-28 07:18:37

杂波对GTK+或CSS一无所知,因此不能将GTK+CSS机制用于杂波。在

如果您想使用GtkStyleContext和GTK+API在ClutterActor中绘制内容,可以使用ClutterCanvas内容,然后使用gtk_render_*API和ClutterCanvas::draw信号提供的Cairo上下文。在

相关问题 更多 >