Я пытаюсь создать новый графический интерфейс 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");
}
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();
}
Ах, я решил проблему сам. Мне пришлось инициировать QQuickView в шапке. gui.h: private: QQuickView * viewer; gui.cpp: viewer = new QQuickView; Белое окно было вызвано gui.show (), поэтому я удалил его.
Других решений пока нет …