при вызове функции С + + с qml вылетает
если вызов делать в тот же класс где происходит соединение с qml, а если вызов в иной класс тогда проблемы
просьба сильно ногами бе бить
с QML не так давно знаком
буду благодарен за помощь
main.cpp#include <QtGui/QApplication>
#include "connect.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
cennect w;
w.LoadQml(true);
return a.exec();
}
mainwindow.h#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtGui>
class MainWindow : public QObject
{
Q_OBJECT
public:
MainWindow(QObject *parent = 0);
~MainWindow();
Q_INVOKABLE void clic();
};
#endif // MAINWINDOW_H
mainwindow.cpp#include <QtGui>
#include <QDeclarativeView>
#include <QDeclarativeContext>
#include <QDebug>
#include "mainwindow.h"
MainWindow::MainWindow(QObject *parent)
: QObject(parent)
{
}
MainWindow::~MainWindow()
{
}
void MainWindow::clic()
{
QApplication::quit();
}
connect.h#ifndef CENNECT_H
#define CENNECT_H
#include <QObject>
#include <QDeclarativeView>
class cennect : public QObject
{
Q_OBJECT
public:
explicit cennect(QObject *parent = 0);
QDeclarativeView *m_Tr;
void LoadQml(const bool &v);
Q_INVOKABLE void red();
signals:
public slots:
};
#endif // CENNECT_H
connect.cpp#include <QtGui>
#include <QDeclarativeView>
#include <QDeclarativeContext>
#include <QDebug>
#include "connect.h"
#include "mainwindow.h"
cennect::cennect(QObject *parent) :
QObject(parent)
{
}
void cennect::LoadQml(const bool &v)
{
m_Tr = new QDeclarativeView;
m_Tr->setAttribute(Qt::WA_TranslucentBackground);
MainWindow r;
m_Tr->rootContext()->setContextProperty("qml", &r);
m_Tr->setSource(QUrl::fromLocalFile("main.qml"));
if(v)
{
m_Tr->show();
}
}
void cennect::red()
{
QApplication::quit();
}
main.qmlimport QtQuick 1.0
Rectangle {
width: 360
height: 360
Text {
text: qsTr("Hello World")
anchors.centerIn: parent
}
MouseArea {
anchors.fill: parent
onClicked: {
qml.clic();
}
}
}