PDA

View Full Version : سوال: تلفيق UI Widget و المان های QML در يک پروژه Qt



AriaGlobal
شنبه 21 دی 1392, 03:40 صبح
با سلام، من ميخواستم در يکي از پروژه هام به صورتي تلفيقي هم از QML استفاده هم هم از widget هاي خود Qt به صور مثال يک فورم افزودن اطلاعات رو به صورت کاملا UI Widget ايجاد بکنم اما در کنار باتوم افزودن يک بخشي رو اضافه کنم که به صورت انيماتوري و گرافيکي اطلاعاتي که به وسيله UI Form اظافه شده بود رو در اون کادر (به وسيله المان رکتنگل) نمايش بده در وقاع يکجور تلفيق بين GUI Application و QML Application..


با تشکر..

کامبیز اسدزاده
شنبه 21 دی 1392, 09:25 صبح
شما باید از خاصیت Integrating استفاده کنید , یعنی طرحیرو که در QML دارید در داخل فرمتون که Widget هست وارد کنید.
اینارو مطالعه کنید کمکتون میکنه :

http://harmattan-dev.nokia.com/docs/library/html/qt4/qml-integration.html
http://qt-project.org/doc/qt-4.8/qtprogrammers.html
http://www.ics.com/blog/combining-qt-widgets-and-qml-qwidgetcreatewindowcontainer
http://stackoverflow.com/questions/18205234/qml-in-c-app-or-vice-versa

AriaGlobal
شنبه 21 دی 1392, 20:31 عصر
من از اين استفاده کردم :

QQuickView viewer;
viewer.setSource(QUrl("./qml/main.qml"));
viewer.show();


و اين رو INCLUDE کردم :

#include <QtQuick/QQuickView>

اما در خطي که شيء View رو تعريف کردم با اين ارور مواجه شدم :


09:44:41: Running steps for project test01...
09:44:41: Configuration unchanged, skipping qmake step.
09:44:41: Starting: "C:\Qt\Qt5.1.1\Tools\mingw48_32\bin\mingw32-make.exe"
C:/Qt/Qt5.1.1/Tools/mingw48_32/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'C:/Qt/Qt5.1.1/Tools/QtCreator/bin/build-test01-Desktop_Qt_5_1_1_MinGW_32bit-Debug'
g++ -c -pipe -fno-keep-inline-dllexport -g -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_QML_LIB -DQT_WIDGETS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I..\test01 -I"..\..\..\..\5.1.1\mingw48_32\include" -I"..\..\..\..\5.1.1\mingw48_32\include\QtQml" -I"..\..\..\..\5.1.1\mingw48_32\include\QtWidgets" -I"..\..\..\..\5.1.1\mingw48_32\include\QtNetwork" -I"..\..\..\..\5.1.1\mingw48_32\include\QtGui" -I"..\..\..\..\5.1.1\mingw48_32\include\QtCore" -I"debug" -I"." -I"." -I"..\..\..\..\5.1.1\mingw48_32\mkspecs\win32-g++" -o debug\main.o ..\test01\main.cpp
g++ -Wl,-subsystem,windows -mthreads -o debug\test01.exe debug/main.o debug/mainwindow.o debug/moc_mainwindow.o -lglu32 -lopengl32 -lgdi32 -luser32 -lmingw32 -lqtmaind -LC:\Qt\Qt5.1.1\5.1.1\mingw48_32\lib -lQt5Qmld -lQt5Widgetsd -lQt5Networkd -lQt5Guid -lQt5Cored
debug/main.o: In function `Z5qMainiPPc':
C:\Qt\Qt5.1.1\Tools\QtCreator\bin\build-test01-Desktop_Qt_5_1_1_MinGW_32bit-Debug/../test01/main.cpp:11: undefined reference to `_imp___ZN10QQuickViewC1EP7QWindow'
C:\Qt\Qt5.1.1\Tools\QtCreator\bin\build-test01-Desktop_Qt_5_1_1_MinGW_32bit-Debug/../test01/main.cpp:12: undefined reference to `_imp___ZN10QQuickView9setSourceERK4QUrl'
Makefile.Debug:80: recipe for target 'debug\test01.exe' failed
C:\Qt\Qt5.1.1\Tools\QtCreator\bin\build-test01-Desktop_Qt_5_1_1_MinGW_32bit-Debug/../test01/main.cpp:11: undefined reference to `_imp___ZN10QQuickViewD1Ev'
C:\Qt\Qt5.1.1\Tools\QtCreator\bin\build-test01-Desktop_Qt_5_1_1_MinGW_32bit-Debug/../test01/main.cpp:11: undefined reference to `_imp___ZN10QQuickViewD1Ev'
collect2.exe: error: ld returned 1 exit status
mingw32-make[1]: Leaving directory 'C:/Qt/Qt5.1.1/Tools/QtCreator/bin/build-test01-Desktop_Qt_5_1_1_MinGW_32bit-Debug'
makefile:34: recipe for target 'debug' failed
mingw32-make[1]: *** [debug\test01.exe] Error 1
mingw32-make: *** [debug] Error 2
09:44:44: The process "C:\Qt\Qt5.1.1\Tools\mingw48_32\bin\mingw32-make.exe" exited with code 2.
Error while building/deploying project test01 (kit: Desktop Qt 5.1.1 MinGW 32bit)
When executing step 'Make'
09:44:44: Elapsed time: 00:04.