我想为我的应用程序中的所有小部件设置默认样式。我找到了这个页面并读到有set_default_style()
功能。问题是我在任何地方都找不到它。
在女巫包/模块/类中我可以找到这个功能吗?有没有其他方法可以避免使用gtk.Widget.set_style()
方法为每个小部件设置样式?
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);
查看 CSSProvider 文档,了解有关确切 css 格式的更多详细信息。
编辑:实际上你在标题中提到了 pygtk——我猜这意味着 GTK+ 2.x?在那种情况下,答案不是我发布的,我真的不记得你们的老方法了。对不起。
我只是偶然发现了这个,通过蛮力实验,我最终使用了:
widget2.set_style(widget.rc_get_style())
例如,请参见:
不确定在这种情况下是否有帮助,但......