> On 25 Sep 2017, at 13:17, Murphy, Sean <smur...@walbro.com> wrote: > > And in my real main.cpp I have > QApplication app(argc, argv); > QQmlEngine engine; > QQmlComponent component(&engine, QUrl("qrc:/qml/dashboard.qml")); > component.create(); > Whereas the project that was generated by Creator when I was testing your > example is > QGuiApplication app(argc, argv); > QQmlApplicationEngine engine; > engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
Aha, it happens when using a QApplication; the MessageDialog is actually a QMessageBox in that case. I can get the same result with the test qml like this: qml -apptype widget messagedialog.qml (that makes the qml runtime use a QApplication instead of QGuiApplication) and maybe we have some trouble making a QWidget dialog transient for a QWindow. In QMessageBoxHelper::show(), it does try to set its transient parent: virtual bool show(Qt::WindowFlags f, Qt::WindowModality m, QWindow *parent) { m_dialog.winId(); QWindow *window = m_dialog.windowHandle(); Q_ASSERT(window); window->setTransientParent(parent); qDebug() << window << "transient for" << parent; … } QMessageBoxHelper::show - QWidgetWindow(0x7fcf52d80a40, name="QMessageBoxClassWindow") transient for QQuickWindowQmlImpl(0x7fcf54a192c0) I wrote it up as QTBUG-63406. _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest