字体族未生效
目前我正在使用GTK4和 Python,基于GNOME Builder为 Python的默认项目来开发一个应用。我的GTKTextView的字体族(font-family)不会改变,尽管该字体已经安装在我的电脑上,且字体大小可以生效。我已经把CodeEditor的 ID指派给TextView,并尝试把字体族的声明移到CodeEditor的声明中。
# ...
# Windows Class definition and definition of the config objectsand it's properties
def __init__(self, **kwargs):
super().__init__(**kwargs)
css = Gtk.CssProvider()
css.load_from_data(f"""
.CodeEditor {{
font-size: {config.CodeEditorFontSize}px;
background-color: {config.EditorBackgroundColor};
}}
.CodeEditor text{{
font-family: "Jetbrains Mono";
}}
window {{
background-color: {config.EditorBackgroundColor};
}}
""".encode())
Gtk.StyleContext.add_provider_for_display(
Gdk.Display.get_default(),
css,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION,
)
解决方案
css = Gtk.CssProvider()
css.load_from_data(f"""
textview.CodeEditor,
textview.CodeEditor text {{
font-family: "JetBrains Mono", monospace;
font-size: {config.CodeEditorFontSize}px;
background-color: {config.EditorBackgroundColor};
}}
""".encode())
Gtk.StyleContext.add_provider_for_display(
Gdk.Display.get_default(),
css,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION,
)
self.textview.add_css_class("CodeEditor")
Builder id is not a CSS class and .CodeEditor only matches if you add that class with add_css_class
我不确定JetBrains Mono(不带大写的B)是否可用。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。