예제 #1
0
    def setHtml(self, html, base_url):
        """ Reimplemented to make sure that when we return, the DOM is ready to
        use.

        Based on the local event loop approach described here:
        http://doc.qt.digia.com/qq/qq27-responsive-guis.html#waitinginalocaleventloop
        """
        event_loop = QtCore.QEventLoop()
        self._loaded = False

        def on_load():
            self._loaded = True
            event_loop.quit()

        self.page().loadFinished.connect(on_load)

        super(ProxyQWebView, self).setHtml(html, base_url)

        if not self._loaded:
            event_loop.exec_()
예제 #2
0
    def setUrl(self, url):
        """ Reimplemented to make sure that when we return, the DOM is ready to
        use.

        Based on the local event loop approach described here:
        http://doc.qt.digia.com/qq/qq27-responsive-guis.html#waitinginalocaleventloop
        """
        event_loop = QtCore.QEventLoop()
        page = self._page
        loaded = [False]

        def on_load(ok):
            loaded[0] = True
            event_loop.quit()

        page.loadFinished.connect(on_load)
        try:
            super(ProxyQWebView, self).setUrl(QtCore.QUrl(url))
            if not loaded[0]:
                event_loop.exec_()
        finally:
            page.loadFinished.disconnect(on_load)