Und genau das ist ein Programmierfehler! Entweder kommt der DLG in die MDI-Area, oder ich starte ihn mit exec(). Beides zusammen geht nicht!!!CaptnChaos hat geschrieben:Wenn der dialog modal ist, ist es klar das die anwendung "hängen" bleibt. sie wartet bis der dialog mit einer rückgabe (ok, cancel) geschlossen wird.
Code: Alles auswählen
QMdiArea * mdi = new QMdiArea(this);
setCentralWidget(mdi);
QFileDialog* dlg = new QFileDialog(this);
dlg->setModal(true);
//mdi->addSubWindow(dlg);
dlg->exec();
Wenn ich die auskommentierte Zeile wieder mit reinnehm, dann bleibt es tatsächlich ohne Fenster hängen. Das ist einfach in der Anwendung ein Fehler, denn entweder ist der Dialog (ist ja auch nur ein QWidget) in ein Layout oder sonst ein Widget wie MDI integriert, oder er wird als eigenes Fenster (eben modaler Dialog) geöffnet. Beides zusammen geht nicht...
// edit:
Es ist im übrigen auch egal ob der Dialog modal ist oder nicht, sobald ich den mit exec() starte und in ein Layout/mdi/... binde, wird blockiert.