У меня есть базовый веб-браузер, настроенный и работающий с Quickly и кодом Python, но как мне настроить его так, чтобы мой объект TextEntry (где вводится URL-адрес) обновлялся, если я нажимал на ссылку на веб-странице. Довольно странно, что он отображает http://www.google.com , когда я нажимаю YouTube на главной странице Google, чтобы перейти на YouTube, и запись не обновляется.
Может кто-нибудь помочь?
Предполагается, что вы используете 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()
используется для включения / выключения кнопок «Стоп / Перезагрузка / Назад / Вперед» на панели инструментов. Если у вас их нет, не используйте их (в противном случае измените имена в соответствии с вашими потребностями).