qt 创建器 - QT5 QWebView 链接器错误



现在我只是想在按下按钮时让'www.google.com'加载到网络视图中。 在设计器中添加 Web 视图后,链接器开始变得疯狂。 我在Windows 7上使用QT Creater 2.6.1和QT5。 我将QT +='webkit的东西'添加到.pro文件中。 我尝试过清理和重建,但仍然遇到链接器错误。

出于某种奇怪的原因,在任何文件中添加" #include <QWebView>"都会产生找不到文件的错误:"C:\Users\Scott\Desktop\eCookBook\eCookBook2\cookbook.cpp:3:错误:C1083:无法打开包含文件:"QWebView":没有这样的文件或目录"

食谱.h:

#ifndef COOKBOOK_H
#define COOKBOOK_H
#include <QMainWindow>
#include <QtWebKit/QWebElement>
#include <QtWebKit/QtWebKit>
#include <QtWebKitWidgets/QWebPage>
namespace Ui {
class cookBook;
}
class cookBook : public QMainWindow
{
    Q_OBJECT
public:
    explicit cookBook(QWidget *parent = 0);
    ~cookBook();
private slots:
    void on_pushButton_clicked();
    void on_textBrowser_anchorClicked(const QUrl &arg1);

private:
    Ui::cookBook *ui;
    //QWebPage page;
};
#endif // COOKBOOK_H

食谱.cpp

#include "cookbook.h"
#include "ui_cookbook.h"
//#include <QWebView>
//#include <QtWebKit/QtWebKit>
cookBook::cookBook(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::cookBook)
{
    ui->setupUi(this);
}
cookBook::~cookBook()
{
    delete ui;
}

void cookBook::on_pushButton_clicked()
{
    ui->listWidgetTest->insertItem(ui->listWidgetTest->count(), "TEST");
    const QUrl testsite = "www.google.com";
    ui->widget->load(testsite);
    ui->widget->show();
}

.pro 文件

#-------------------------------------------------
#
# Project created by QtCreator 2013-01-23T14:46:45
#
#-------------------------------------------------
QT       += core gui
QT += webkit
QT += webkit webkitwidgets

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = eCookBook2
TEMPLATE = app

SOURCES += main.cpp
        cookbook.cpp
HEADERS  += cookbook.h
FORMS    += cookbook.ui

编译器输出:

15:04:58: Running steps for project eCookBook2...
15:04:58: Configuration unchanged, skipping qmake step.
15:04:58: Starting: "C:QtCommercialQtCommercial5.0.0ToolsQtCreatorbinjom.exe" 
    C:QtCommercialQtCommercial5.0.0ToolsQtCreatorbinjom.exe -f Makefile.Debug
    cl -c -nologo -Zm200 -Zc:wchar_t -Zi -MDd -GR -W3 -w34100 -w34189 -EHsc -DUNICODE -DWIN32 -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -I"..........QtCommercialQtCommercial5.0.05.0.0msvc2010include" -I"..........QtCommercialQtCommercial5.0.05.0.0msvc2010includeQtWidgets" -I"..........QtCommercialQtCommercial5.0.05.0.0msvc2010includeQtGui" -I"..........QtCommercialQtCommercial5.0.05.0.0msvc2010includeQtCore" -I"debug" -I"." -I"." -I"..........QtCommercialQtCommercial5.0.05.0.0msvc2010mkspecswin32-msvc2010" -Fodebug @C:UsersScottAppDataLocalTempcookbook.obj.5244.0.jom
cookbook.cpp
..eCookBook2cookbook.cpp(34) : warning C4100: 'arg1' : unreferenced formal parameter
    echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "debug\eCookBook2.exe.embed.manifest">debugeCookBook2.exe_manifest.rc
    if not exist debugeCookBook2.exe del debugeCookBook2.exe.embed.manifest>NUL 2>&1
    if exist debugeCookBook2.exe.embed.manifest copy /Y debugeCookBook2.exe.embed.manifest debugeCookBook2.exe_manifest.bak
    link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:debugeCookBook2.exe.embed.manifest /OUT:debugeCookBook2.exe @C:UsersScottAppDataLocalTempeCookBook2.exe.5244.2012.jom
cookbook.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QWebView::QWebView(class QWidget *)" (__imp_??0QWebView@@QAE@PAVQWidget@@@Z) referenced in function "public: void __thiscall Ui_cookBook::setupUi(class QMainWindow *)" (?setupUi@Ui_cookBook@@QAEXPAVQMainWindow@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall QWebView::metaObject(void)const " (?metaObject@QWebView@@UBEPBUQMetaObject@@XZ)
cookbook.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall QWebView::qt_metacast(char const *)" (?qt_metacast@QWebView@@UAEPAXPBD@Z)
cookbook.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall QWebView::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@QWebView@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
cookbook.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall QWebView::event(class QEvent *)" (?event@QWebView@@UAE_NPAVQEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "public: virtual class QSize __thiscall QWebView::sizeHint(void)const " (?sizeHint@QWebView@@UBE?AVQSize@@XZ)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::mousePressEvent(class QMouseEvent *)" (?mousePressEvent@QWebView@@MAEXPAVQMouseEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::mouseReleaseEvent(class QMouseEvent *)" (?mouseReleaseEvent@QWebView@@MAEXPAVQMouseEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::mouseDoubleClickEvent(class QMouseEvent *)" (?mouseDoubleClickEvent@QWebView@@MAEXPAVQMouseEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::mouseMoveEvent(class QMouseEvent *)" (?mouseMoveEvent@QWebView@@MAEXPAVQMouseEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::wheelEvent(class QWheelEvent *)" (?wheelEvent@QWebView@@MAEXPAVQWheelEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::keyPressEvent(class QKeyEvent *)" (?keyPressEvent@QWebView@@MAEXPAVQKeyEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::keyReleaseEvent(class QKeyEvent *)" (?keyReleaseEvent@QWebView@@MAEXPAVQKeyEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::focusInEvent(class QFocusEvent *)" (?focusInEvent@QWebView@@MAEXPAVQFocusEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::focusOutEvent(class QFocusEvent *)" (?focusOutEvent@QWebView@@MAEXPAVQFocusEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::paintEvent(class QPaintEvent *)" (?paintEvent@QWebView@@MAEXPAVQPaintEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::resizeEvent(class QResizeEvent *)" (?resizeEvent@QWebView@@MAEXPAVQResizeEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::contextMenuEvent(class QContextMenuEvent *)" (?contextMenuEvent@QWebView@@MAEXPAVQContextMenuEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::dragEnterEvent(class QDragEnterEvent *)" (?dragEnterEvent@QWebView@@MAEXPAVQDragEnterEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::dragMoveEvent(class QDragMoveEvent *)" (?dragMoveEvent@QWebView@@MAEXPAVQDragMoveEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::dragLeaveEvent(class QDragLeaveEvent *)" (?dragLeaveEvent@QWebView@@MAEXPAVQDragLeaveEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::dropEvent(class QDropEvent *)" (?dropEvent@QWebView@@MAEXPAVQDropEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::changeEvent(class QEvent *)" (?changeEvent@QWebView@@MAEXPAVQEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::inputMethodEvent(class QInputMethodEvent *)" (?inputMethodEvent@QWebView@@MAEXPAVQInputMethodEvent@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "public: virtual class QVariant __thiscall QWebView::inputMethodQuery(enum Qt::InputMethodQuery)const " (?inputMethodQuery@QWebView@@UBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual bool __thiscall QWebView::focusNextPrevChild(bool)" (?focusNextPrevChild@QWebView@@MAE_N_N@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual class QWebView * __thiscall QWebView::createWindow(enum QWebPage::WebWindowType)" (?createWindow@QWebView@@MAEPAV1@W4WebWindowType@QWebPage@@@Z)
cookbook.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall QWebView::~QWebView(void)" (__imp_??1QWebView@@UAE@XZ) referenced in function "public: virtual void * __thiscall QWebView::`scalar deleting destructor'(unsigned int)" (??_GQWebView@@UAEPAXI@Z)
cookbook.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall QWebView::load(class QUrl const &)" (__imp_?load@QWebView@@QAEXABVQUrl@@@Z) referenced in function "private: void __thiscall cookBook::on_pushButton_clicked(void)" (?on_pushButton_clicked@cookBook@@AAEXXZ)
debugeCookBook2.exe : fatal error LNK1120: 29 unresolved externals
jom: C:UsersScottDesktopeCookBookeCookBook2-build-Desktop_Qt_5_0_0_MSVC2010_32bit_SDK-DebugMakefile.Debug [debugeCookBook2.exe] Error 1120
jom: C:UsersScottDesktopeCookBookeCookBook2-build-Desktop_Qt_5_0_0_MSVC2010_32bit_SDK-DebugMakefile [debug] Error 2
15:05:01: The process "C:QtCommercialQtCommercial5.0.0ToolsQtCreatorbinjom.exe" exited with code 2.
Error while building/deploying project eCookBook2 (kit: Desktop Qt 5.0.0 MSVC2010 32bit (SDK))
When executing step 'Make'

首先尝试"运行 qmake"(从 Creator 中的"构建"菜单中)重新生成 make 文件,然后重新构建。基本上,您需要在每次修改.pro文件后"运行qmake"。

  1. 在创建器中按 Ctrl+5。
  2. 取消选中"影子构建"。
  3. .pro文件行更改为:

    QT += core gui network webkit webkitwidgets
    
  4. 重新生成项目

修复了相同的错误。尝试在包含中添加 qwebview.h 的路径,例如:(将"QtWebKitWidgets"更改为您的)

#include <QtWebKitWidgets/QWebView.h>

而不仅仅是#include <QWebView.h>

尝试将其添加到使用 QWebView 的所有文件中。

相关内容

  • 没有找到相关文章

最新更新