2

我想在 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是否更好。要走的路是网络技术。

4

1 回答 1

3

这是我现在使用的线路。单元格被渲染为蓝色并带有下划线。双击事件使用 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)
于 2013-06-18T08:38:00.963 回答