Hosto将特定的css设置为pygtk3中的一个小部件?

时间:2017-11-05 18:34:06

标签: python-3.x gtk3

拥有Gtk.Box()并且只需要向窗口小部件添加特定的css。有一个名为CustomBox的Box的dinamic类,并且具有setBackgroundColor(self, strRgbColor)之类的函数,每个函数中都需要为该小部件修改css。

示例:

box1 = CustomBox()
box1.setPadding(10,10,0,0)

box2 = CustomBox()
box2.setBackgroundColor('#ff0000')

需要具有特定css的每个小部件。

你有:

self.id = 'box_' + str(id(self))
box = Gtk.Box()
box.set_name(self.id)
# ...
css_provider = Gtk.CssProvider()
css_provider.load_from_data(('#' + self.id + '{ border: 1px solid red; }').encode())
context = Gtk.StyleContext()
# ... ??

self.id是唯一ID(id(self)),但是如何将css_provider设置为box

1 个答案:

答案 0 :(得分:1)

使用context.add_provider()仅影响窗口小部件本身(不是其子窗口或任何其他窗口小部件)或Gtk.StyleContext.add_provider_for_screen()来影响程序中所有已创建的窗口小部件。