我正在使用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);