代码之家  ›  专栏  ›  技术社区  ›  Hanlon

如何将字体设置为用户使用字体选择器选择的字体?

  •  0
  • Hanlon  · 技术社区  · 6 年前

    我想设置 GtkTextView GtkFontChooserDialog . 怎么能做到?我试过很多方法,但没有一种效果足够好。

    另外,我使用GTK+3 stable,所以请不要推荐不推荐的解决方案(例如使用 gtk_widget_override_font() ). 我想要这个问题的最新解决方案,我已经知道如何使用不推荐的函数来解决它。


    我试过GtkTextTag就像 theGtknerd recommended

    这种方法有两个问题:

    1. 这不会改变小部件的样式上下文,通过它我可以得到当前的字体。
    2. 我用过 gtk_text_buffer_apply_tag() 应用包含用户所选字体的标记,但这不是 ,字体只在当前开始和当前结束之间更改,不考虑以后可能对文本进行的修改。
    2 回复  |  直到 6 年前
        1
  •  0
  •   theGtknerd    6 年前

    你可能想用 GtkTextTag 就像谷歌搜索 here

    你的另一个选择是使用CSS,但我认为它对格式化大量文本不是很友好。

        2
  •  0
  •   CoderCharmander    6 年前

    像这样使用GtkTextTag:

    gtk_text_buffer_create_tag(buffer, "font", "family", "Monospace", NULL);
    
    ...
    
    GtkTextIter start;
    GtkTextIter end;
    
    gtk_text_buffer_get_start_iter(buffer, &start);
    gtk_text_buffer_get_end_iter(buffer, &end);
    
    gtk_text_buffer_apply_tag_by_name(text_buffer, "font", &start, &end);
    

    gtk_widget_modify_font(GtkWidget*, PangoFontDescription*) . 但是它已经过时了,而且在一段时间内没有效果。