我通过右键单击为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
答案 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()