Widget.set_default_style() 自 3.0 起已弃用。您没有提到您正在运行的版本,但我会继续假设它是 3.x。
您想要的是Gtk.CSSProvider(您可以从字符串或 css 文件构建),并将此自定义样式提供程序附加到样式上下文。像这样的东西:
style_provider = Gtk.CssProvider ()
css = """
GtkWindow {
background-color: #F00;
}
"""
style_provider.load_from_data (css);
Gtk.StyleContext.add_provider_for_screen (Gdk.Screen.get_default(),
style_provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
Run Code Online (Sandbox Code Playgroud)
有关确切 css 格式的更多详细信息,请查看 CSSProvider 文档。
编辑:实际上你在标题中提到了 pygtk——我猜这意味着 GTK+ 2.x?在那种情况下,答案不是我发布的,我真的不记得你们的旧方式了。对不起。