0
我正在读一本关于Qt的书,在信号插槽函数的一个示例中,位于插槽方法内部的emit方法...因此,这将成为无限循环......我真的不知道如何阻止它:Qt:emit中的信号插槽位于插槽方法中
connect(webView, SIGNAL(urlChanged(const QUrl&)),
this, SLOT(urlChange(const QUrl&));
,然后我们具备的功能:
void BrowserWindow::urlChange(const QUrl &url)
{
emit urlChanged(url);
progressLabel->setText(tr("Loading"));
}
感谢
哎呀,是你说的没错,但仍有发出调用的时候,槽被调用至少一次,和我'不知道为什么,文字说:“我们发出自己的urlChanged()信号作为BrowserWindow用户的方便”但我不明白这是什么意思,因为唯一的“urlChanged”信号设置为webview实例(webView是QWebView的类型)... – Paul
这个发光将用于可能连接到BrowserWindow的任何插槽。有些东西可能会改变BrowserWindow网址(比如说,点击一个按钮),然后BrowserWindow会发射,因为它已经改变了,它的发射可以触发管道中的另一个插槽(即激活一个不同的按钮)。如果没有BrowserWindow发出,我们不能将这些链接在一起 - 但是有了它,我们就可以。 – Will
感谢Will,好吧,事情是没有“连接”方法,这是听到这从“this”(BrowserWindow)发出,但没关系,我明白了原则,感谢您的帮助!干杯 – Paul