c++ - 使用 QWebview 会出现编译错误,但这并不是因为 .pro 文件中缺少 Qt += webkit

标签 c++ qt qt5 qmake qtwebkit

我在 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 小部件符号。

I think those errors usually occur without Qt += webkit, but in this case that's not what's happening.

这是正确的,但是 QtWebkit 模块在 Qt 5 中被分为 webkit 和 webkitwidgets,因为这些小部件通常被移动到 Qt 5 中的单独模块中,因为构建 UI 的方式是所提倡的 QtQuick。

要解决此问题,您需要将其写入项目文件中:

QT = webkit webkitwidgets

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

关于c++ - 使用 QWebview 会出现编译错误,但这并不是因为 .pro 文件中缺少 Qt += webkit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23587995/

相关文章:

c++ - 检索映射的键(斯坦福 C++ 库)

c++ - 调用函数时是否不支持间接转换?

c++ - Qt DBus连接不适用于SLOT参数中的typedef

c++ - 错误 : symbol(s) not found for architecture x86_64, collect2:ld 返回 1 个退出状态

c++ - 带有最小/最大/关闭按钮的无框窗口 (Windows)

qt - 检测Qt中的右移键

c++ - 多态对象成员

linux - 如何更改 qmake PREFIX 位置

c++ - QOpenGLFunctions 的正确用法

c++ - 2个分离数据结构的迭代器