CellRendererText标记中的超链接

时间:2013-06-14 13:28:32

标签: hyperlink pygtk

我想在pygtk表中显示超链接:

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

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

标记不支持超链接“a”。我收到了这个警告:

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

如何在pygtk表中显示超链接?当然,如果你点击它就应该打开浏览器...

更新

提出这个问题几个月后:这是我个人的建议:不要使用gtk。这是一匹死马。我不知道Qt是否更好。要走的路是网络技术。

1 个答案:

答案 0 :(得分: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))

回调:

    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)