Eu reutilizei seu arquivo qml para iniciar um novo projeto no QtCreator.
Veja abaixo os arquivos que usei para compilar e usar o aplicativo com sucesso:
o arquivo do projeto: test.pro
# The .cpp file which was generated for your project. Feel free to hack it.
SOURCES += main.cpp
# Please do not modify the following two lines. Required for deployment.
include(qtquick2applicationviewer/qtquick2applicationviewer.pri)
qtcAddDeployment()
HEADERS += myclass.h
myclass.h:
#include <QObject>
#include <qdebug.h>
class MyClass : public QObject
{
Q_OBJECT
public slots:
void doStuffFromQmlSlot()
{
qDebug() << Q_FUNC_INFO;
}
public:
MyClass()
{
qDebug() << Q_FUNC_INFO;
}
};
main.cpp:
#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"
#include <QQmlContext>
#include "myclass.h"
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
MyClass myClass;
QtQuick2ApplicationViewer viewer;
viewer.rootContext()->setContextProperty("myclass", &myClass);
viewer.setMainQmlFile(QStringLiteral("qml/main.qml"));
viewer.showExpanded();
return app.exec();
}
e qml / main.qml sendo exatamente o snippet fornecido na sua pergunta
Se você iniciar o projeto usando o QtCreator, você também terá o qtquick2applicationviewer / folder pronto para ser usado.
Então qmake && make && ./test
irá iniciar o aplicativo.
Se você clicar no elemento de texto, você verá:
MyClass::MyClass()
void MyClass::doStuffFromQmlSlot()