Qt QWebView网络超时值和信号

Qt QWebView网络超时值和信号,qt,networking,webkit,timeout,qtwebkit,Qt,Networking,Webkit,Timeout,Qtwebkit,如何将QWebView配置为降低网络超时值-以便在发生网络故障时,可以更快地到达loadFinished(bool ok)信号,显然,设置了false值和适当的错误条件 以不同方式处理不同超时的奖励积分标准错误和成功加载页面将触发loadFinished,方式与以前相同,但自定义计时器将停止网页加载并触发loadFinished,ok=False class Browser(object): def __init__(self): self.web_view = QWe

如何将
QWebView
配置为降低网络超时值-以便在发生网络故障时,可以更快地到达
loadFinished(bool ok)
信号,显然,设置了
false
值和适当的错误条件


以不同方式处理不同超时的奖励积分标准错误和成功加载页面将触发loadFinished,方式与以前相同,但自定义计时器将停止网页加载并触发loadFinished,ok=False

class Browser(object):

    def __init__(self):
        self.web_view = QWebView()
        self.web_view.loadFinished.connect(self._load_finished)

        self._error = None

    def perform(self, url, timeout_value=30):
        request = QNetworkRequest()
        request.setUrl(QUrl(url))

        self.timeout_timer = QTimer()
        self.timeout_timer.timeout.connect(self._request_timed_out)

        self.timeout_timer.start(timeout_value * 1000)
        self.web_view.load(request)

    def _request_timed_out(self):
        self._error = 'Custom request timeout value exceeded.'
        self.timeout_timer.stop()
        self.web_view.stop()
        self.loadFinished.emit(False)

    def _load_finished(self, ok):
        pass
        # ok is now False, and self._error contains a custom error message

标准错误和页面加载成功将以与以前相同的方式触发loadFinished,但自定义计时器将停止网页加载并触发loadFinished,ok=False

class Browser(object):

    def __init__(self):
        self.web_view = QWebView()
        self.web_view.loadFinished.connect(self._load_finished)

        self._error = None

    def perform(self, url, timeout_value=30):
        request = QNetworkRequest()
        request.setUrl(QUrl(url))

        self.timeout_timer = QTimer()
        self.timeout_timer.timeout.connect(self._request_timed_out)

        self.timeout_timer.start(timeout_value * 1000)
        self.web_view.load(request)

    def _request_timed_out(self):
        self._error = 'Custom request timeout value exceeded.'
        self.timeout_timer.stop()
        self.web_view.stop()
        self.loadFinished.emit(False)

    def _load_finished(self, ok):
        pass
        # ok is now False, and self._error contains a custom error message

这是一个有效的解决方法-通过子类化QWebView可能会更加封装。。但是,我仍然不敢相信他们对网络套接字上的所有select()调用都硬编码超时,是吗?我得出了相同的结论,因为我在API文档中没有发现任何关于超时值的有用信息…这是一个有效的解决方法-可能通过子类化QWebView来封装。。但是,我还是不敢相信他们对网络套接字上的所有select()调用都硬编码超时,是吗?我得出了相同的结论,因为我在API文档中没有发现任何关于超时值的有用信息。。。