从python Gtk3获取gtk主题css属性
我很难从系统Gtk3主题css(gtk.css)中获取某些属性,以便在python Gtk3应用程序中呈现上下文组件 我从我的系统主题gtk.css中得到了以下内容:从python Gtk3获取gtk主题css属性,python,gtk,pygtk,gtk3,gnome,Python,Gtk,Pygtk,Gtk3,Gnome,我很难从系统Gtk3主题css(gtk.css)中获取某些属性,以便在python Gtk3应用程序中呈现上下文组件 我从我的系统主题gtk.css中得到了以下内容: entry { ... color: #5c616c; border-color: #cfd6e6; background-color: #ffffff; } entry:focus { background-clip: border-box; color: #5c616c; borde
entry {
...
color: #5c616c;
border-color: #cfd6e6;
background-color: #ffffff; }
entry:focus {
background-clip: border-box;
color: #5c616c;
border-color: #5294e2;
background-color: #ffffff; }
entry:disabled {
color: rgba(92, 97, 108, 0.55);
border-color: rgba(207, 214, 230, 0.55);
background-color: rgba(255, 255, 255, 0.55); }
entry.warning {
color: white;
border-color: #F27835;
background-color: #f7ae86; }
entry.warning image {
color: white; }
...
我想从中得到的是那些上下文颜色,例如条目中的背景色
。警告
,等等
我做了一些研究,这里是我陷入困境的地方:
css_provider = Gtk.CssProvider.get_default()
warning_color = css_provider.get_style(something to put here)
非常感谢你的帮助 正确的方法是修改
Gtk.Widget
的Gtk.StyleContext
使CSS规则适用于它,然后使用Gtk.render_where()
函数来绘制上下文组件
例如,要在Gtk.Entry
子类上渲染与警告
背景样式相同的背景,请执行以下操作:
context = my_entry.get_style_context()
context.save()
context.add_class('warning')
Gtk.render_background(context, blah, blah, blah)
context.restore()
请注意,直接从CSS获取背景色是不可能的。CSS背景可以是颜色、图像或渐变。非常感谢。我的后续问题是,我想在textview小部件中使用上下文颜色作为文本颜色(标记),并且我没有必要拥有实际的输入对象。正如我所说,您无法可靠地获得背景颜色,因为对于特定小部件可能没有“背景颜色”这样的东西。使用
context.get\u property()
可以获得一些样式。