Использование QQuickView вне main.cpp

Я пытаюсь создать новый графический интерфейс QtQuick 2.0 для существующего проекта C++. Старый QtGui управлялся классом, поэтому я хочу также управлять новым графическим интерфейсом из этого класса. До сих пор я открывал графический интерфейс внутри основной функции, но когда я перемещаю код в свой класс графического интерфейса, все, что он создает, представляет собой маленькое белое окно. Есть ли решение моей проблемы/где я не прав?

Вот мой код:

#include <QQuickView>
#include <QObject>
#include <QQuickItem>

#include "gui.h"
#include "qtquick2applicationviewer.h"

gui::gui(QWidget *parent) :
QWidget(parent)
{
    QQuickView viewer;
    viewer.setSource(QUrl::fromLocalFile("qml/QML-MRGalleyServer/main.qml"));
    viewer.show();
    QQuickItem* object = viewer.rootObject();

    object->setProperty("nextpicture1","Images/widget2.png");
    object->setProperty("nextpicture2","Images/widget7.png");
    object->setProperty("galleyColor","transparent");
}

основной.cpp:

 #include <QApplication>
 #include <QtCore>
 #include <opencv2/core/core.hpp>
 #include <opencv2/highgui/highgui.hpp>

 #include "qtquick2applicationviewer.h"
 #include "gui.h"

 int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    gui gui;
    gui.show();

    qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
    return app.exec();
}

person Zamahra    schedule 06.06.2013    source источник
comment
Также вам, скорее всего, потребуется передать this в качестве родительского указателя на viewer.   -  person Zlatomir    schedule 06.06.2013


Ответы (1)


О, я решил проблему сам. Мне пришлось инициировать QQuickView в заголовке. gui.h: private: просмотрщик QQuickView*; gui.cpp: просмотрщик = новый QQuickView; Белое окно было вызвано gui.show(), поэтому я удалил его.

person Zamahra    schedule 24.02.2014