2013-10-09 39 views
1

我試着按照本文的QWidget :: createWindowContainer():結合Qt的窗口小部件和QML與

http://www.ics.com/blog/combining-qt-widgets-and-qml-qwidgetcreatewindowcontainer#.UlVUExCXcnI

如果我試圖重做這個我得到這個錯誤:

15:13:36: Running steps for project Test_QMLWidgets01... 15:13:36: Configuration unchanged, skipping qmake step. 15:13:36: Starting: "C:\Qt\Qt5\Tools\QtCreator\bin\jom.exe" C:\Qt\Qt5\Tools\QtCreator\bin\jom.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"C:\Qt\Qt5\5.1.0\msvc2010\include" -I"C:\Qt\Qt5\5.1.0\msvc2010\include\QtWidgets" -I"C:\Qt\Qt5\5.1.0\msvc2010\include\QtGui" -I"C:\Qt\Qt5\5.1.0\msvc2010\include\QtANGLE" -I"C:\Qt\Qt5\5.1.0\msvc2010\include\QtCore" -I"debug" -I"." -I"." -I"C:\Qt\Qt5\5.1.0\msvc2010\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\VANBEB~1\AppData\Local\Temp\mainwindow.obj.3328.0.jom mainwindow.cpp ..\Test_QMLWidgets01\mainwindow.cpp(2) : fatal error C1083: Cannot open include file: 'QQuickView': No such file or directory jom: E:\QtProjects\build-Test_QMLWidgets01-Desktop_Qt_5_1_0_MSVC2010_32bit-Debug\Makefile.Debug [debug\mainwindow.obj] Error 2 jom: E:\QtProjects\build-Test_QMLWidgets01-Desktop_Qt_5_1_0_MSVC2010_32bit-Debug\Makefile [debug] Error 2 15:13:36: The process "C:\Qt\Qt5\Tools\QtCreator\bin\jom.exe" exited with code 2. Error while building/deploying project Test_QMLWidgets01 (kit: Desktop Qt 5.1.0 MSVC2010 32bit) When executing step 'Make' 15:13:36: Elapsed time: 00:00.

所以我改變的#include#包括但後來我得到鏈接錯誤:

15:16:27: Running steps for project Test_QMLWidgets01... 15:16:27: Configuration unchanged, skipping qmake step. 15:16:27: Starting: "C:\Qt\Qt5\Tools\QtCreator\bin\jom.exe" C:\Qt\Qt5\Tools\QtCreator\bin\jom.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"C:\Qt\Qt5\5.1.0\msvc2010\include" -I"C:\Qt\Qt5\5.1.0\msvc2010\include\QtWidgets" -I"C:\Qt\Qt5\5.1.0\msvc2010\include\QtGui" -I"C:\Qt\Qt5\5.1.0\msvc2010\include\QtANGLE" -I"C:\Qt\Qt5\5.1.0\msvc2010\include\QtCore" -I"debug" -I"." -I"." -I"C:\Qt\Qt5\5.1.0\msvc2010\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\VANBEB~1\AppData\Local\Temp\mainwindow.obj.4220.15.jom mainwindow.cpp echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID / 24 / RT_MANIFEST */ "debug\Test_QMLWidgets01.exe.embed.manifest">debug\Test_QMLWidgets01.exe_manifest.rc if not exist debug\Test_QMLWidgets01.exe if exist debug\Test_QMLWidgets01.exe.embed.manifest del debug\Test_QMLWidgets01.exe.embed.manifest if exist debug\Test_QMLWidgets01.exe.embed.manifest copy /Y debug\Test_QMLWidgets01.exe.embed.manifest debug\Test_QMLWidgets01.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:debug\Test_QMLWidgets01.exe.embed.manifest /OUT:debug\Test_QMLWidgets01.exe @C:\Users\VANBEB~1\AppData\Local\Temp\Test_QMLWidgets01.exe.4220.2886.jom mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void _thiscall QQuickView::setSource(class QUrl const &)" ([email protected]@@[email protected]@@Z) referenced in function "public: __thiscall MainWindow::MainWindow(class QWidget *)" ([email protected]@[email protected]@@@Z) mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QQuickView::QQuickView(class QWindow *)" (_imp[email protected]@[email protected]@@@Z) referenced in function "public: __thiscall MainWindow::MainWindow(class QWidget *)" ([email protected]@[email protected]@@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall QQuickView::metaObject(void)const " ([email protected]@@[email protected]@XZ) mainwindow.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall QQuickView::qt_metacast(char const *)" ([email protected]@@[email protected]) mainwindow.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall QQuickView::qt_metacall(enum QMetaObject::Call,int,void * *)" ([email protected]@@[email protected]@@[email protected]) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual bool __thiscall QQuickWindow::event(class QEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QQuickView::timerEvent(class QTimerEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "public: virtual class QAccessibleInterface * __thiscall QQuickWindow::accessibleRoot(void)const " ([email protected]@@[email protected]@XZ) mainwindow.obj : error LNK2001: unresolved external symbol "public: virtual class QObject * __thiscall QQuickWindow::focusObject(void)const " ([email protected]@@[email protected]@XZ) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QQuickWindow::exposeEvent(class QExposeEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QQuickView::resizeEvent(class QResizeEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QQuickWindow::focusInEvent(class QFocusEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QQuickWindow::focusOutEvent(class QFocusEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QQuickWindow::showEvent(class QShowEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QQuickWindow::hideEvent(class QHideEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QQuickView::keyPressEvent(class QKeyEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QQuickView::keyReleaseEvent(class QKeyEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QQuickView::mousePressEvent(class QMouseEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QQuickView::mouseReleaseEvent(class QMouseEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QQuickWindow::mouseDoubleClickEvent(class QMouseEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QQuickView::mouseMoveEvent(class QMouseEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QQuickWindow::wheelEvent(class QWheelEvent *)" ([email protected]@@[email protected]@@Z) mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual _thiscall QQuickView::~QQuickView(void)" ([email protected]@[email protected]) referenced in function "public: virtual void * _thiscall QQuickView:: scalar deleting destructor'(unsigned int)" ([email protected]@[email protected]) mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QQmlDebuggingEnabler::QQmlDebuggingEnabler(bool)" ([email protected]@[email protected][email protected]) referenced in function "void __cdecl dynamic initializer for 'qmlEnableDebuggingHelper''(void)" (??[email protected]@YAXXZ) debug\Test_QMLWidgets01.exe : fatal error LNK1120: 24 unresolved externals jom: E:\QtProjects\build-Test_QMLWidgets01-Desktop_Qt_5_1_0_MSVC2010_32bit-Debug\Makefile.Debug [debug\Test_QMLWidgets01.exe] Error 1120 jom: E:\QtProjects\build-Test_QMLWidgets01-Desktop_Qt_5_1_0_MSVC2010_32bit-Debug\Makefile [debug] Error 2 15:16:30: The process "C:\Qt\Qt5\Tools\QtCreator\bin\jom.exe" exited with code 2. Error while building/deploying project Test_QMLWidgets01 (kit: Desktop Qt 5.1.0 MSVC2010 32bit) When executing step 'Make' 15:16:30: Elapsed time: 00:04.

什麼我做錯了嗎?

+0

你應該閱讀的錯誤消息。似乎你沒有將必要的Qt模塊鏈接到你的項目。 –

+0

我該如何鏈接什麼? – cronos

+0

尋找你的IDE幫助 –

回答

6

我認爲你需要添加到您的.pro文件: QT += core gui widgets quick

+0

這似乎是問題所在。謝謝! – cronos

+0

我已經安裝了Qt 5,但似乎我的Qt仍然有Qt4.8,我必須手動添加所有文件。有沒有辦法讓這個過程自動化,或者一勞永逸。 – Jino

+0

@Jino,你可以嘗試添加另一個Kit到QtCreator。 – Kakadu