在main.cpp之外使用QQuickView

时间:2013-06-06 12:35:46

标签: c++ qt qml qtquick2

我正在尝试为现有的C ++项目创建一个新的QtQuick 2.0 Gui。旧的QtGui由一个班级管理,所以我也希望从这个班级管理新的gui。到目前为止,我打开了main函数内部的gui,但是当我将代码移动到我的gui类时,它产生的一切都是一个小的白色窗口。我的问题是解决方案/我错在哪里?

这是我的代码:

#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");
}

main.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();
}

1 个答案:

答案 0 :(得分:1)

啊,我自己解决了这个问题。我不得不在标题中启动QQuickView。 gui.h:private:QQuickView * viewer; gui.cpp:viewer = new QQuickView;白色窗口是由gui.show()引起的,所以我删除了它。