Python + Gtk + WebKit:页面更改后滚动条高度未重置
Python + Gtk + WebKit: scrollbar height not reset after page change
以下代码不会在页面更改为较小的高度后重置垂直滚动条。
可重现:
- 执行脚本
1.1 Google.com 全屏加载
1.2 垂直滚动条:初始高度
- 搜索内容
2.1 页面将发生变化
2.2 垂直滚动条增加
- 单击 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
.
以下代码不会在页面更改为较小的高度后重置垂直滚动条。
可重现:
- 执行脚本
1.1 Google.com 全屏加载
1.2 垂直滚动条:初始高度 - 搜索内容
2.1 页面将发生变化
2.2 垂直滚动条增加 - 单击 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 aGtk.Viewport
if the child doesn’t implementGtk.Scrollable
.