gpt4 book ai didi

python - 从 python Gtk3 获取 gtk 主题 css 属性

转载 作者:行者123 更新时间:2023-11-30 22:46:22 38 4
gpt4 key购买 nike

我在从系统 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;
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; }
...

我想从中得到的是那些上下文颜色,例如来自 entry.warningbackground-color

我做了一些研究,这就是我遇到的问题:

css_provider = Gtk.CssProvider.get_default()
warning_color = css_provider.get_style(something to put here)

非常感谢您的帮助!

最佳答案

正确的方法是修改 Gtk.WidgetGtk.StyleContext 以便 CSS 规则适用于它,然后使用 Gtk。 render_whatever() 函数用于绘制上下文组件。

例如,在 Gtk.Entry 子类上渲染与 warning 背景样式相同的背景:

context = my_entry.get_style_context()
context.save()
context.add_class('warning')
Gtk.render_background(context, blah, blah, blah)
context.restore()

请注意,无法直接从 CSS 获取背景颜色。 CSS 背景可以是颜色、图像或渐变。

关于python - 从 python Gtk3 获取 gtk 主题 css 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40902760/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com