【问题标题】:Python + Gtk + WebKit: scrollbar height not reset after page changePython + Gtk + WebKit:页面更改后滚动条高度未重置
【发布时间】:2019-04-30 12:09:29
【问题描述】:

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

它是可重现的

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

【问题讨论】:

  • @stovfl add_with_viewport() 存在,至少在 pygtk 文档中。我可能混淆了文档(facepalm)。有用。如果您将其添加为答案,我会接受。非常感谢!

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


【解决方案1】:

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

使用

swin.add_with_viewport(browser)

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

swin.add(browser)

来自文档:Gtk 3.0 » 类

Gtk.ScrolledWindow.add_with_viewport(child)

自 3.8 版起已弃用:如果子级未实现 Gtk.ScrollableGtk.Container.add() 将自动添加 Gtk.Viewport

【讨论】:

    猜你喜欢
    • 2018-11-21
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    • 2011-02-13
    • 2018-11-16
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多