Python + Gtk + WebKit:页面更改后滚动条高度未重置

Python + Gtk + WebKit: scrollbar height not reset after page change

以下代码不会在页面更改为较小的高度后重置垂直滚动条

可重现:

  1. 执行脚本
    1.1 Google.com 全屏加载
    1.2 垂直滚动条:初始高度
  2. 搜索内容
    2.1 页面将发生变化
    2.2 垂直滚动条增加
  3. 单击 Google 徽标 (左上角)
    3.1 页面会变回Google.com
    3.2 垂直滚动条保持第2步的高度而不是重置到第1步

我想一定有一个我遗漏的设置。

有什么想法吗?谢谢!

import gi

gi.require_version('Gtk', '3.0')
gi.require_version('WebKit', '3.0')
from gi.repository import Gtk, WebKit, GLib, Gdk

if __name__ == '__main__':
    URL = 'http://google.com'

    browser = WebKit.WebView()
    browser.load_uri(URL)

    win = Gtk.Window()
    swin = Gtk.ScrolledWindow()
    swin.add_with_viewport(browser)
    swin.set_hexpand(True)
    swin.set_vexpand(True)
    swin.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
    win.add(swin)
    win.fullscreen()
    win.show_all()
    Gtk.main()

Question: WebKit: scrollbar height not reset after page change

正在使用

swin.add_with_viewport(browser)

对于大多数支持本机滚动的小部件来说,这将是非常错误的,请改用

swin.add(browser)

来自文档:Gtk 3.0 » 类

Gtk.ScrolledWindow.add_with_viewport(child)

Deprecated since version 3.8: Gtk.Container.add() will automatically add a Gtk.Viewport if the child doesn’t implement Gtk.Scrollable.