Qt Code:
  1. qmlView = new QDeclarativeView;
  2. qmlView->setSource( QUrl::fromLocalFile( "modaldialog.qml" ) );
  3. QObject *object = qmlView->rootObject();
  4.  
  5. QMetaObject::invokeMethod( object, "dialog_type_02",
  6. Q_RETURN_ARG( QVariant, returnedValue ),
  7. Q_ARG( QVariant, dlg_text )
  8. );
  9.  
  10. QWidget *widget = qobject_cast<QWidget *>(object);//doesn't work, return null
  11. layout->addWidget( widget );//doesn't work, above is null
  12.  
  13. //however if i replace the above 2 lines of code with this:
  14. QGraphicsObject* graphicsObject =qobject_cast<QGraphicsObject *>(object); //works fine
  15. scene.addItem( graphicsObject ); //works fine
To copy to clipboard, switch view to plain text mode 

why qobject_cast works ok for a QGraphicsObject and not for a QWidget coming from QML?

Why use the "layout->addWidget(...)" option? because i want a QDialog with the stuff coming from QML