2009-11-19 9 views
9

Chương trình của tôi có số gtk.TreeView hiển thị gtk.ListStore. Các gtk.ListStore chứa chuỗi như thế này:Làm thế nào để thoát khỏi các nhân vật trong đánh dấu Pango?

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

đâu URL là (rõ ràng) một chuỗi URL. Đôi khi có các ký tự trong số URL khiến pango không phân tích cú pháp đánh dấu.

Có cách nào để thoát khỏi URL nói chung để pango sẽ bỏ qua nó để nó sẽ được hiển thị theo nghĩa đen? Nếu không, tôi nên "thoát" các ký tự đặc biệt trong các URL như thế nào?

Trả lời

2

Bạn cần phải thoát khỏi các giá trị. Tôi không chắc chắn định dạng chính xác mà Pango yêu cầu, nhưng có vẻ như HTML và chức năng cgi.escape có thể là tất cả những gì bạn cần.

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

glib.markup_escape_text có thể là cách tiếp cận kinh điển hơn khi sử dụng GTK.

+1

Trong phiên bản mới nhất của PyGTK, nó có vẻ là [gobject.markup_escape_text] (http://www.pygtk.org/pygtk2reference/gobject-functions.html#function-gobject--markup-escape-text) –