Python + Gtk + WebKit: высота полосы прокрутки не сбрасывается после изменения страницы - PullRequest
0 голосов
/ 30 апреля 2019

Следующий код не сбрасывает вертикальную полосу прокрутки после того, как страница изменилась на меньшую высоту .

Это Воспроизводимо :

  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 Ответ

1 голос
/ 30 апреля 2019

Вопрос : 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.

...