[Solved] Segfault trying to connect QML signal to CPP slot
-
Qt 5.2.1, visual studio 2010.
In my class constructor I have the following code, and at runtime m_uiRoot is 0 at the Q_CHECK_PTR call.
Solution: It was a weird QML syntax error
@m_view = new QQuickView;
Q_CHECK_PTR(m_view);m_view->setSource(QUrl::fromLocalFile("ControlPanel.qml"));
m_view->show();m_uiRoot = m_view->rootObject();
Q_CHECK_PTR(m_uiRoot); //SEGFAULT HEREconnect(m_uiRoot, SIGNAL(Scene1Pessed()), this, SLOT(handleButtonClicked()));
connect(m_uiRoot, SIGNAL(Scene2Pressed()), this, SLOT(handleButtonClicked()));
connect(m_uiRoot, SIGNAL(Scene3Pressed()), this, SLOT(handleButtonClicked()));
connect(m_uiRoot, SIGNAL(Scene4Pressed()), this, SLOT(handleButtonClicked()));
connect(m_uiRoot, SIGNAL(Scene5Pressed()), this, SLOT(handleButtonClicked()));
connect(m_uiRoot, SIGNAL(Scene6Pressed()), this, SLOT(handleButtonClicked()));
@ -
Quick check - Are you able to see QML window ? Are you able to launch the ControlPanel.qml separately ? What is the top-level item of ControlPanel.qml ? Is it ApplicationWindow or Rectangle ?
-
Rectangle.I've launched the qml window by itself before in a barebones cpp application. m_uiRoot has type QObject *
-
what was the issue ? Can post your answer here. It helps others in the forum.