我一直有问题,添加更多的CSS一个已经存在的主题,无论我把CSS大部分似乎不适用,有什么办法来优先考虑我的部分的CSS?
当我改变已经存在的CSS,而不是添加新的CSS时,是正确应用......
当把CSS放入调试器时,CSS也能正常应用。
作为一个例子,我添加了这个。
.titlebar {
background-color:rgb(255,255,255);
border:none;
box-shadow:none;
}
在我的一个主题的底部,但它从来没有适用... ... 如果他们没有我添加的属性,有些东西确实适用。
比方说,我给一个通常没有边框的按钮添加了一个边框,那么它就可以工作了,但是我不能改变它的背景颜色,因为它已经有了一个边框...... 我如何规避overwrite这个问题?
我怀疑你是想改变你一个程序的(部分)外观?我建议你在你的程序中本地添加CSS。我曾经试验过一点主题,和你一样,没有得到满意的结果。
后来想想,我觉得 "本地 "改CSS似乎是合理的,因为可以避免更新的冲突.... 而且如果有人用你的代码在其他主题上使用,可能还能用。
style_provider = Gtk.CssProvider()
base_dir = os.path.abspath(os.path.dirname(__file__))
css_path = os.path.join(base_dir, 'input_paste.css')
style_provider.load_from_file(Gio.File.new_for_path("test_css_provider.css"))
Gtk.StyleContext.add_provider_for_screen(
Gdk.Screen.get_default(),
style_provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
)
而CSS文件 test_css_provider.css
由前一个代码片段加载。
#entry {
border: 1px solid;
padding: 10px 10px;
border-radius: 10px;
color: #D3DAE3;
background-image: linear-gradient(to bottom, rgba(30, 60, 200, 0.5));
}
我不是一个CSS专家,一般不喜欢改变程序的外观,因为这是一个非常棘手的领域(口味和颜色)。