使用QWebview给出编译错误,但不是因为Qt += webkit从.pro文件中缺失

Using QWebview gives compiling errors, but not because Qt += webkit is missing from the .pro file

本文关键字:webkit pro 文件 Qt 是因为 QWebview 编译 错误 使用      更新时间:2023-10-16

我在Qt中做了一个项目,并添加了一个QWebview,然后我将Qt += webkit添加到.pro文件中。然而,在编译时,我得到了这些错误:

...ui_mainwindow.h:42: error: undefined reference to `_imp___ZN8QWebViewC1EP7QWidget'
...ui_mainwindow.h:45: error: undefined reference to `_imp___ZN8QWebView6setUrlERK4QUrl'

错误指在这里(在ui_mainwindow.h):

...
    webView = new QWebView(centralWidget); // <-- First error here
    webView->setObjectName(QStringLiteral("webView"));
    webView->setGeometry(QRect(0, 0, 300, 200));
    webView->setUrl(QUrl(QStringLiteral("about:blank"))); // <-- Second error here
    MainWindow->setCentralWidget(centralWidget);
...
在Program.pro:

QT       += core gui webkit

我认为这些错误通常发生在没有Qt += webkit的情况下,但在这种情况下,这不是发生的事情。

ui_mainwindow.h:42: error: undefined reference to ' _imp___ZN8QWebViewC1EP7QWidget'

链接器找不到webview小部件符号。

我认为这些错误通常发生在没有Qt += webkit的情况下,但在这种情况下,这不是发生的事情。

这是正确的,然而QtWebkit模块在Qt 5中被分成webkit和webkitwidgets,因为小部件通常在Qt 5中移动到它们单独的模块中,因为构建ui的方式是QtQuick。

要解决这个问题,您需要在项目文件中这样写:

QT = webkit webkitwidgets

注意,没有必要显式地使用coregui模块,因为它们是默认添加的。此外,请确保您也安装了webkitwidgets模块,否则即使上面的内容也不够。

在Qt 5中,他们引入了webkit以外的东西:

试着放入。pro文件:Qt += core gui webkit widgets webkitwidgets

希望对你有帮助。