Supondo que você esteja usando o WebKit. Você terá que se conectar ao sinal da propriedade load-status
para ver se uma nova página está sendo solicitada e alterar a netry de acordo.
Aqui está um pouco de código de um projeto antigo meu.
# 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())
O método _set_loading()
é usado para ativar / desativar os botões parar / recarregar / retroceder / avançar na barra de ferramentas. Se você não tiver, deixe de fora (caso contrário, mude os nomes para as suas necessidades).