我主要是网络开发人员,所以我的问题可能是初学者。

我正在编写一个与QWebView内容配合使用的函数,这种宏脚本可对加载的网页执行操作。

代码是这样的:

somefunction() {

QWebView *webView;
webView->load(QUrl("http://www.google.com"));
<...> here I want to pause the code until the page is loaded <...>
here goes the code of html manipulation, click on another link
<...> here I want to pause the code until the page is loaded <...>

}

好的,所以在我写了“”的地方,我想暂停代码,直到页面被加载。我不知道该怎么做来暂停该函数,并使其等待页面完成加载。 。我知道信号和插槽。但是,如果我在这里使用slot,则必须继续执行另一个函数-SLOT函数,但是我想将所有代码和逻辑保留在somefunction()中。怎么做?

最佳答案

您可以使用嵌套的QEventLoop来同步异步处理,例如页面加载。发出loadFinished时,只需对循环进行exit()即可从您进入循环的位置恢复执行。

另一方面,将处理拆分为多个功能(插槽)也不错。代码和逻辑仍在同一类中的同一位置。

关于c++ - QT:暂停功能流程,直到完成QWebView SIGNAL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3986446/

10-11 23:13
查看更多