2009-11-19 13 views
9

Mi programa tiene un gtk.TreeView que muestra un gtk.ListStore. El gtk.ListStore contiene cadenas de la siguiente manera:¿Cómo escapar de los caracteres en el marcado Pango?

"<span size='medium'><b>"+site_title+"</b></span>"+"\n"+URL 

Dónde URL es (obviamente) una cadena URL. A veces hay caracteres en URL que hacen que pango no analice el marcado.

¿Hay alguna manera de escapar de URL como un todo para que pango simplemente lo ignore y se muestre literalmente? Si no, ¿cómo debería "escapar" los caracteres especiales en las URL?

Respuesta

2

Necesita escaparse de los valores. No estoy seguro de qué formato exacto necesita Pango, pero parece que HTML y la función cgi.escape puede ser todo lo que necesita.

import cgi 
print "<span size='medium'><b>%s</b></span>\n%s" % 
     (cgi.escape(site_title), cgi.escape(URL)) 
17

glib.markup_escape_text puede ser un enfoque más canónica cuando se utiliza GTK.

+1

En la última versión de PyGTK parece ser [gobject.markup_escape_text] (http://www.pygtk.org/pygtk2reference/gobject-functions.html#function-gobject--markup-escape-text) –

Cuestiones relacionadas