我在 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
请注意,无需显式使用 core
和 gui
模块,因为它们是默认添加的。另外,请确保您也安装了 webkitwidgets 模块,否则即使上面的内容也不够。
关于c++ - 使用 QWebview 会出现编译错误,但这并不是因为 .pro 文件中缺少 Qt += webkit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23587995/