Обновить текстовую запись веб-браузера в Python

У меня есть базовый веб-браузер, настроенный и работающий с Quickly и кодом Python, но как мне настроить его так, чтобы мой объект TextEntry (где вводится URL-адрес) обновлялся, если я нажимал на ссылку на веб-странице. Довольно странно, что он отображает http://www.google.com , когда я нажимаю YouTube на главной странице Google, чтобы перейти на YouTube, и запись не обновляется.

Может кто-нибудь помочь?

1
задан 10 January 2014 в 20:45

1 ответ

Предполагается, что вы используете WebKit. Вам нужно будет подключиться к сигналу свойства load-status, чтобы узнать, запрашивается ли новая страница, и соответственно изменить нетри.

Вот немного кода из моего старого проекта.

    # Snipped init and stuff...
    self._webview = WebKit.WebView()
    self._webview.connect('notify::load-status', self.on_load_status)

def on_load_status(self, webview, status):
    status = webview.get_load_status()
    if status == WebKit.LoadStatus.COMMITTED:
        self._set_loading(True)
        self._entry.set_text(webview.get_uri())
    elif status == WebKit.LoadStatus.FINISHED:
        self._set_loading(False)

def _set_loading(self, loading):
    self._stop.set_sensitive(loading)
    self._reload.set_sensitive(not loading)
    self._back.set_sensitive(self._webview.can_go_back())
    self._forward.set_sensitive(self._webview.can_go_forward())

Метод _set_loading() используется для включения / выключения кнопок «Стоп / Перезагрузка / Назад / Вперед» на панели инструментов. Если у вас их нет, не используйте их (в противном случае измените имена в соответствии с вашими потребностями).

0
ответ дан 10 January 2014 в 20:45

Другие вопросы по тегам:

Похожие вопросы: