Atualizar TextEntry do WebBrowser em Python

1

Eu tenho um navegador básico configurado e trabalhando com o código Quickly e Python, mas como faço para configurá-lo para que meu objeto TextEntry (onde o URL é inserido) seja atualizado se eu clicar em um link na página da web. É meio estranho exibir link quando clico no YouTube na página inicial do google para ir ao youtube e a entrada não é atualizada.

Alguém por favor pode ajudar?

    
por user130000 10.02.2013 / 17:07

1 resposta

1

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).

    
por Timo 11.02.2013 / 11:45