我使用webkit2gtk在python窗口中运行一个小的html文件。我已经禁用了gtk标题栏,并且在html页面本身中有一个关闭和最小化按钮。
现在,我想在单击close按钮时关闭窗口。之前我用的是webkitgtk,webkit可以感知到html文件标题的变化,并在标题改变时关闭窗口(不只是关闭,最小化和拖动也是在这个方法中实现的。当鼠标悬停在html中的按钮上时,它将禁用拖动)。
def title_changed(widget, frame, title):
print(title)
if title == "close":
Gtk.main_quit()
elif title == "minimize":
self.window.iconify()
self.webview.connect('title-changed', title_changed)现在我想将代码移植到webkit2gtk。但是,它看起来很像title-changed调用,该调用在webkit2gtk的webkitgtk has been removed中可用。那么,如何处理close和其他事件,即当一个按钮被单击时,如何让python对窗口做一些操作(这是由JS处理的)?
如果标题更改不再可用,还有什么其他选择?
发布于 2020-07-30 04:49:33
即使在WebKit 1中,通过页面标题从web进程到UI进程的通信也有点可疑,但不幸的是,这在当时是最方便的选择。
在WebKit 2中,您可以使用WebView.send_message_to_page()和UserContentManager.register_script_message_handler()。
https://stackoverflow.com/questions/63109260
复制相似问题