Ich habe einen QDialog mit Unterklassen, die eine Menge von QSpinBox-Unterklassen enthalten. Wenn man auf einen SpinBox klickt, erscheint eine Tastatur (ein weiterer QDialog), in dem man über Schaltflächen Zahlen eingeben kann. Beide QDialog's werden aktiviert, indem man QDialog::exec() aufruft;
Wenn man jedoch diesen 2. QDialog öffnet, schließt sich der erste. Ich habe den Ablauf analysiert und festgestellt, dass der erste QDialog noch nicht beendet ist. QDialog 1 sendet "QDialog::Rejected" NACHDEM ich QDialog 2 abgeschlossen habe. Was ich möchte, ist, dass der QDialog 1 überhaupt nicht endet, er sollte den SpinBox mit dem eingegebenen Wert aktualisieren und weitere QDialog's für andere SpinBoxen öffnen, die der Benutzer später bearbeiten möchte.
Ich denke, es hängt damit zusammen, dass die Ereignisschleife von QDialog 1 durch die Ereignisschleife von QDialog 2 beendet wird. Ich habe versucht, QDialog::show bei QDialog 2 zu verwenden. Das Widget wird für einen Moment (Millisekunde) angezeigt, bleibt aber nicht aktiv. QDialog 1 wird auch sofort geschlossen.