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

时间:2019-04-30 12:09:30

标签: python python-3.x webview gtk webkit

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

它是可复制的

  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()

1 个答案:

答案 0 :(得分:1)

  

问题:WebKit:页面更改后滚动条高度未重置

使用

swin.add_with_viewport(browser)

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

swin.add(browser)

从文档:Gtk 3.0»类

  

Gtk.ScrolledWindow.add_with_viewport(child)

     

从3.8版开始不推荐使用:Gtk.Container.add()将自动添加Gtk.Viewport,如果孩子未实现Gtk.Scrollable