pygtk webkit中HitTestResult类的用法

时间:2015-03-21 04:02:28

标签: webkit pygtk

我通过右键单击为context_menu弹出窗口编写一个回调函数,以获取鼠标指向的链接的url,我知道我可以使用WebKit.HitTestResult类从Gdk事件中获取信息(我假设它到右键单击事件)。但是,下面的代码没有给我什么。

我发现问题可能是HitTestResult的错误使用。但我可以找到关于这门课程用法的小文件,有人可以帮我解决这个问题吗?

def callback(self, widget, context_menu, hit_result_event, event):
    option = Gtk.ImageMenuItem('Do it')
    option.connect('activate', self.option_activate_cb)
    context_menu.append(option)
    option.show()

def option_activate_cb(self, image_menu_item):
    test = WebKit.HitTestResult()
    action = test.props.link-uri
    print action

1 个答案:

答案 0 :(得分:0)

这是一个例子。基本上,您必须使用HitTestResult.get_link_uri()

from gi.repository import Gtk, WebKit2

class Test:
    def __init__(self):
        view = WebKit2.WebView()
        view.load_uri('https://stackoverflow.com')
        view.connect('context-menu', self.on_context_menu)

        win = Gtk.Window()
        win.add(view)
        win.connect('delete-event', Gtk.main_quit)
        win.show_all()

    def on_context_menu(self, webview, context_menu, event, hit_test_result):
        if hit_test_result.context_is_link():
            print(hit_test_result.get_link_uri())

if __name__ == '__main__':
    Test()
    Gtk.main()