gpt4 book ai didi

python - 在 GTK+3 中滚动 WebKit2.Webkit 窗口

转载 作者:太空狗 更新时间:2023-10-30 02:04:24 28 4
gpt4 key购买 nike

如何滚动 webkit2gtk 小部件?

webkitgtk(又名 webkit1)中,您将 WebView 包装在 ScrolledWindow 中,因此可以使用它调整属性。

对于 wekit2gtk,在 WebView 上的这个调用只返回 None,我看不到其他方法可以调用。

作为解释,我想为 webkit2 添加触摸支持。 我通过在 WebView 小部件上添加一个透明层 ¹ 来破解我的方法,但现在我检测到我似乎无法检测到的触摸使用它们。

¹ 今天发布的版本消除了对顶层的需求。然而,我有触摸,但我无能为力。

最佳答案

WebKit2 中的进程分离有一些优点,但也使很多事情变得更加复杂。我相信滚动是其中之一:它发生在网络进程中,因为滚动条现在由 webkit 处理,而不是 Gtk 小部件。触摸处理也应如此:它部分在网络进程中完成。 Carlos Garcia Campos 写了一篇 blog post关于使用 WebKitWebExtension 来帮助解决这个问题。请注意,该设计对您的代码也有很多影响:部分代码将在完全不同的进程中运行。

答案的其余部分未经测试,请将其视为有根据的猜测:

我相信控制滚动的方法是通过 DOM API ,更具体地说是 DOMDOMWindow.scroll* 函数。复杂的部分是获取对 DOMDOMWindow 的引用——您需要实现一个 WebExtension,它将在 Web 进程中运行,并允许您在创建了一个 WebPageWebPage.get_dom_document() 调用为您提供了一个 DOMDocument,然后 DOMDocument.get_default_view() 应该为您提供了 DOMDOMWindow 你需要。

对于 DOM API 文档,Mozilla可能是比简朴的 WebKit-GTK-DOM 文档更好的引用。

如果我正在做您正在尝试做的事情,我的第一站将是 Freenode 上的#webkitgtk+ IRC channel ,以检查以上是否真的是您想要做的事情的明智方法...

关于python - 在 GTK+3 中滚动 WebKit2.Webkit 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21781868/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com