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 に答える