Gtk3 Python 小部件背景图片

Gtk3 Python Widget Background Image

我正在使用 Python 3.4 和 Gtk 3.18。我已经能够弄清楚如何通过 CSS 为小部件(在我的例子中是 Gtk.Box )实现背景图像。但是,我希望能够将该背景图像动态更改为用户指定的图像。怎么办?

css 文件中当前用于方框背景的部分。

.backImagePitPass {
    background-image: url('../software/resources/PitPass.png');
    background-size: contain;
    background-position: left top;
    background-repeat: no-repeat;
    border: 1px solid black;
    outline-style: solid;
}

正在为应用实现样式 sheet。

def _initStyles(self):
    css_provider = Gtk.CssProvider()
    css_provider.load_from_path('ui/main/gtk-widgets.css')

    Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),
        css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)

我试过这个作为测试,但是盒子和它的内容甚至没有显示。

context = self._boxPreview.get_style_context()
css_provider = Gtk.CssProvider()
css_provider.load_from_data(b'''
    .backImagePitPass {
        background-image: url('../software/resources//PitPass2.png');
        background-size: contain;
        background-position: left top;
        border: 1px solid black;
        }
        ''')

context.add_provider(css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)

经过更多搜索后,我在此处 Setting Selected property of Row in TreeView dynamically in Gtk3 (python) 找到了一个解决方案,它为我指出了一个可行的解决方案。