Объединение виджетов Qt и QML с QWidget :: createWindowContainer ()

Я пытался следить за этой статьей:

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

Если я попытаюсь повторить это, я получаю такую ​​ошибку:

15:13:36: Выполнение шагов для проекта Test_QMLWidgets01 ... 15:13:36: Конфигурация не изменилась, шаг qmake пропущен. 15:13:36: Запуск: "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 "C: \ Qt \ Qt5 \ 5.1.0 \ msvc2010 \ mkspecs \ win32-msvc2010" -Fodebug \ @C: \ Users \ VANBEB ~ 1 \ AppData \ Local \ Temp \ mainwindow.obj.3328.0.jom главное окно. cpp .. \ Test_QMLWidgets01 \ mainwindow.cpp (2): фатальная ошибка C1083: не удается открыть включаемый файл: 'QQuickView': нет такого файла или каталога jom: E: \ QtProjects \ build-Test_QMLWidgets01-Desktop_Qt_5scalar deleting destructor'(unsigned int)" (??_GQQuickView@@UAEPAXI@Z) mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QQmlDebuggingEnabler::QQmlDebuggingEnabler(bool)" (__imp_??0QQmlDebuggingEnabler@@QAE@_N@Z) referenced in function "void __cdecl0_MSVC2010_32bit-Debug Makefile [ debug \ mainwindow.obj] Ошибка 2 jom: E: \ QtProjects \ build-Test_QMLWidgets01-Desktop_Qt_5scalar deleting destructor'(unsigned int)" (??_GQQuickView@@UAEPAXI@Z) mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QQmlDebuggingEnabler::QQmlDebuggingEnabler(bool)" (__imp_??0QQmlDebuggingEnabler@@QAE@_N@Z) referenced in function "void __cdecl0_MSVC2010_32bit-Debug \ Makefile [debug] Ошибка 2 15:13:36: процесс «C: \ Qt \ Qt5 \ Tools \ QtCreator \ bin \ jom.exe "завершился с кодом 2. Ошибка при сборке / развертывании проекта Test_QMLWidgets01 (комплект: Desktop Qt 5.1.0 MSVC2010 32bit) При выполнении шага" Make "15:13:36: Прошедшее время: 00:00.

Поэтому я изменил #include на #include, но потом получаю ошибки связывания:

Что я делаю неправильно?

Думаю, что нужно добавить в свой scalar deleting destructor'(unsigned int)" (??_GQQuickView@@UAEPAXI@Z) mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QQmlDebuggingEnabler::QQmlDebuggingEnabler(bool)" (__imp_??0QQmlDebuggingEnabler@@QAE@_N@Z) referenced in function "void __cdecl файл: _2_


person cronos    schedule 09.10.2013    source источник
comment
А как мне связать что?   -  person Dmitry Sazonov    schedule 09.10.2013
comment
Ищите помощь для своей IDE   -  person cronos    schedule 09.10.2013
comment
stackoverflow.com/questions/8978471 /   -  person Dmitry Sazonov    schedule 09.10.2013
comment
Кажется, в этом проблема. Спасибо!   -  person Dmitry Sazonov    schedule 09.10.2013


Ответы (1)


Вы должны прочитать сообщения об ошибках. Похоже, вы не привязываете к своему проекту необходимые модули Qt.

person Kakadu    schedule 09.10.2013
comment
Я установил Qt 5, но кажется, что в моем Qt все еще есть Qt4.8, и мне нужно вручную добавить все файлы. Есть ли способ автоматизировать этот процесс или сделать это раз и навсегда. - person cronos; 10.10.2013
comment
@Jino, можно попробовать добавить еще один Кит в QtCreator. - person Jino; 25.02.2014
comment
@Kakadu, Подскажите, какой комплект установить и как. Если у вас есть шаги для этого, поделитесь со мной. - person Kakadu; 25.02.2014
comment
@Jino, вы можете начать с qt-project.org/doc/qtcreator -2.6 / creator-targets.html - person Jino; 26.02.2014
comment
15:16:27: Выполнение шагов для проекта Test_QMLWidgets01 ... 15:16:27: Конфигурация не изменилась, шаг qmake пропущен. 15:16:27: Запуск: "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 "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 если не существует debug \ Test_QMLWidgets, если не существует debug \ Test_QMLWidgets Test_QMLWidgets01.exe.embed.manifest del debug \ Test_QMLWidgets01.exe.embed.manifest если существует debug \ Test_QMLWidgets01.exe.embed.manifest copy / Y debug \ Test_QMLWidgets01.exe.embed.manifest debug \ Test_QMLWidgets01.exe_manifest.Link / NOLWidgets01.exe_manifest.OL / DYNAMICBASE / NXCOMPAT / DEBUG / SUBSYSTEM: WINDOWS "/ MANIFESTDEPENDENCY: type = 'win32' name = 'Microsoft.Windows.Common-Controls' версия = '6.0.0.0' publicKeyToken = '6595b64144ccf1df' language processor = '' language processor = ' = '' "/ MANIFEST /MANIFESTFILE:debug\Test_QMLWidgets01.exe.embed.manifest /OUT:debug\Test_QMLWidgets01.exe @C: \ Users \ VANBEB ~ 1 \ AppData \ Local \ Temp \ Test_QMLWidge ts01.exe.4220.2886.jom mainwindow.obj: ошибка LNK2019: неразрешенный внешний символ "__declspec (dllimport) public: void _ thiscall QQuickView :: setSource (class QUrl const &)" ( _imp_? setSource @ QQuickView @@ QAEXABVQUrl @@@ Z) упоминается в функции "public: __thiscall MainWindow :: MainWindow (class QWidget *)" (?? 0MainWindow @@ QAE @ PAVQWidget @@@ Z) mainwindow.obj: error LNK2019: неразрешенный внешний символ "__declspec (dllimport) public: __thiscall QQuickView :: QQuickView (class QWindow *)" (_ imp ?? 0QQuickView @@ QAE @ PAVQWindow @@@ Z) упоминается в функции "public: __thiscall MainWindow: : MainWindow (class QWidget *) "(?? 0MainWindow @@ QAE @ PAVQWidget @@@ Z) mainwindow.obj: error LNK2001: неразрешенный внешний символ" public: virtual struct QMetaObject const * __thiscall QQuickView :: metaObject (void) const " (? metaObject @ QQuickView @@ UBEPBUQMetaObject @@ XZ) mainwindow.obj: ошибка LNK2001: неразрешенный внешний символ "public: virtual void * __thiscall QQuickView :: qt_metacast (char const *)" (? qt _metacast @ QQuickView @@ UAEPAXPBD @ Z) mainwindow.obj: ошибка LNK2001: неразрешенный внешний символ "public: virtual int __thiscall QQuickView :: qt_metacall (enum QMetaObject :: Call, int, void * *)" (? qt_metacall @@ QQuick UAEHW4Call @ QMetaObject @@ HPAPAX @ Z) mainwindow.obj: ошибка LNK2001: неразрешенный внешний символ «protected: virtual bool __thiscall QQuickWindow :: event (class QEvent *)» (? Event @ QQuickWindow @@ MAE_NPAVQEwindow @@@ Z) main obj: error LNK2001: неразрешенный внешний символ "protected: virtual void __thiscall QQuickView :: timerEvent (class QTimerEvent *)" (? timerEvent @ QQuickView @@ MAEXPAVQTimerEvent @@@ Z) mainwindow.obj: error LNK2001: unresolved external symbol "public: unresolved external symbol" public: виртуальный класс QAccessibleInterface * __thiscall QQuickWindow :: availableRoot (void) const "(? availableRoot @ QQuickWindow @@ UBEPAVQAccessibleInterface @@ XZ) mainwindow.obj: error LNK2001: unresolved external symbol" public: virtual class QOjectcall * Q__th ) const "(? focusObject @ QQ uickWindow @@ UBEPAVQObject @@ XZ) mainwindow.obj: error LNK2001: неразрешенный внешний символ «protected: virtual void __thiscall QQuickWindow :: exposeEvent (class QExposeEvent *)» (? exposeEvent @ QQuickWindow. @@ MAEXPAVQExposeEvent @ : ошибка LNK2001: неразрешенный внешний символ "protected: virtual void __thiscall QQuickView :: resizeEvent (class QResizeEvent *)" (? resizeEvent @ QQuickView @@ MAEXPAVQResizeEvent @@@ Z) mainwindow.obj: error LNK2001: неразрешенный внешний символ «protected: void __thiscall QQuickWindow :: focusInEvent (class QFocusEvent *) "(? focusInEvent @ QQuickWindow @@ MAEXPAVQFocusEvent @@@ Z) mainwindow.obj: error LNK2001: неразрешенный внешний символ" protected: virtual void __thiscall QQuickEventOnde (фокус) QQuickEvent :: "(? focusOutEvent @ QQuickWindow @@ MAEXPAVQFocusEvent @@@ Z) mainwindow.obj: error LNK2001: неразрешенный внешний символ" protected: virtual void __thiscall QQuickWindow :: showEvent (class QShowEvent *) "(? showEvent @ QQuEXickWindow @@ QShowEvent @@@ Z) mainwindow.obj: ошибка LNK2001: неразрешенный внешний символ «protected: virtual void __thiscall QQuickWindow :: hideEvent (class QHideEvent *)» (? HideEvent @ QQuickWindow @@ MAEXPAVQHideEvent @@@ Z) mainwindow.obj: error LNK2001: неразрешенный внешний символ "protected: virt - person Kakadu; 26.02.2014