我主要是网络开发人员,所以我的问题可能是初学者。
我正在编写一个与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/