使用 Python 更新 WebBrowser 的 TextEntry

使用 Python 更新 WebBrowser 的 TextEntry

我设置了一个基本的网络浏览器,并使用 Quickly 和 Python 代码,但如何设置它,以便我的 TextEntry 对象(输入 URL 的位置)在单击网页上的链接时更新。它显示的内容有点奇怪http://www.google.com当我点击 Google 主页上的 YouTube 转到 YouTube 时,条目没有更新。

有人可以帮忙吗?

答案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()方法用于启用/禁用工具栏上的停止/重新加载/后退/前进按钮。如果您没有这些按钮,请将其省略(否则,当然可以根据需要更改名称)。

相关内容