我正在使用gtk_tree_view_column_new_with_attributes(NULL, renderer, "markup", 0, NULL);。当我为行设置标记时,我使用g_markup_printf_escaped来转义作为varargs传递的文本字符串中的任何字符。

我需要一种方法来稍后从此编码的标记字符串取回文本,除去所有格式标记并替换&entities。或者,仅将GtkTreeView行的显示文本作为字符串获取也可以。我不想也不必将原始文本存储在隐藏的列中。最好的方法是什么?

最佳答案

我找到了一个Pango函数来执行此操作:
https://developer.gnome.org/pango/stable/pango-Markup.html#pango-parse-markup

    gchar *markup, *text;

    gtk_tree_model_get(model, &iter, 0, &markup, -1);
    pango_parse_markup(markup, -1, 0, NULL, &text, NULL, NULL);

10-04 13:51