2013-06-14 3 views
1

Я хочу, чтобы отобразить гиперссылку в таблице PyGtk:гиперссылок в CellRendererText разметке

cr=gtk.CellRendererText() 
column=gtk.TreeViewColumn(name) 
column.add_attribute(cr, "markup", 0) 

my_liststore=['<a href="http://google.com/">google</a>', ...] 

гиперссылке «а», похоже, не поддерживается разметке. Я получаю это предупреждение:

GtkWarning: Failed to set text from markup due to error parsing markup: Unknown tag 'a' on line 1 

Как отобразить гиперссылку в таблице pygtk? И, конечно, он должен открыть браузер, если нажать на нее ...

Update

Несколько месяц после того, как задать этот вопрос: Вот мой личный совет: не использовать GTK. Это мертвая лошадь. Я не знаю, лучше ли Qt. Путь к веб-технологии.

ответ

2

Вот строки, которые я использую сейчас. Ячейка отображается синим цветом и подчеркнута. Событие двойного щелчка вызывает обратный вызов с использованием модуля webbrowser.

table = gtk.TreeView(list_store) 

cr = gtk.CellRendererText() 

# allow pango markup 
column.add_attribute(cr, "markup", i) 

# connect double click handler: 
self.timeline.connect('row-activated', self.on_treeview_click) 

# content in the data rows: 
u'<span foreground="blue" underline="single">%s</span>' % (
        glib.markup_escape_text(name)) 

Callback:

def on_treeview_click(self, treeview, path, view_column): 
     model=treeview.get_model() 
     action_id=model[path][0] 
     url='....' # build your url 
     import webbrowser 
     webbrowser.open(url) 
Смежные вопросы