加载HTML时获取webview文档标题

时间:2014-11-18 07:48:56

标签: c++ qt webview

我有以下Qt webview:

QWebView *view = new QWebView();
view->load(QUrl("http://example.com"));

我希望在加载完成后获取文档的标题,并使用它来设置主窗口标题。

据我所知view->loadFinished()如果页面加载了则返回true

为了设置窗口标题,我使用webView->setWindowTitle(newTitle)。所以,我需要newTitle变量,我想成为文档标题。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

QWebView::loadFinished是一个信号。您可以订阅它以了解页面何时加载:

connect(view, SIGNAL(loadFinished(bool)), this, SLOT(onLoaded()));

要访问HTML标题,您可以使用QWebView::title属性。

void onLoaded()
{
    window->setWindowTitle(view->title());
}

而不是使用loadFinished,使用信号titleChanged(const QString& title)将新标题应用于窗口可能更合适:

connect(view, SIGNAL(titleChanged(QString)), this, SLOT(setWindowTitle(QString)));

编辑:
示例:

QWebView* webView = new QWebView();
connect(webView, SIGNAL(titleChanged(QString)), webView, SLOT(setWindowTitle(QString)));
webView->load(QUrl("http://yahoo.com"));
webView->show();