Qt中的信号槽:发射位于槽方法中

时间:2011-11-28 22:55:53

标签: qt signals-slots

我正在读一本关于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"));
}

由于

1 个答案:

答案 0 :(得分:4)

什么是webView? (它是同一种类型吗?)

连接是将一个实例与此插槽连接 - 它可能没有连接自己的实例。

如果是

connect(this, SIGNAL(urlChanged(const QUrl&)), 
        this, SLOT(urlChange(const QUrl&));

然后那将是一个无限循环