我想为我的应用程序中的所有小部件设置默认样式。我找到this page并读到有set_default_style()
函数。问题是我无法在任何地方找到它。
在女巫包/模块/类中,我可以找到这个功能吗?
有没有其他方法可以避免使用gtk.Widget.set_style()
方法为每个窗口小部件设置样式?
答案 0 :(得分:3)
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?在那种情况下答案是不我发布的内容,而且我真的不记得你们已经开始的方式了。遗憾。答案 1 :(得分:0)
我偶然发现了这一点,通过蛮力实验,我最终使用了:
widget2.set_style(widget.rc_get_style())
举个例子,见:
Templating overflowing content with glade and pygtk?
不确定在这种情况下是否有帮助,但是......