我想爲我的應用程序中的所有小部件設置默認樣式。我發現this page並讀取有set_default_style()
函數。問題是我無法在任何地方找到它。如何在pyGTK中爲小部件設置默認樣式?
在女巫包/模塊/類我可以找到這個功能? 有沒有其他方法可以避免使用gtk.Widget.set_style()
方法爲每個窗口部件設置樣式?
我想爲我的應用程序中的所有小部件設置默認樣式。我發現this page並讀取有set_default_style()
函數。問題是我無法在任何地方找到它。如何在pyGTK中爲小部件設置默認樣式?
在女巫包/模塊/類我可以找到這個功能? 有沒有其他方法可以避免使用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())
的示例,請參見:
Templating overflowing content with glade and pygtk?
不知道它會幫助在這種情況下,雖然...