Frage

Ich habe eine subclassed QDialog ein Bündel von subclassed QSpinBox des enthält. Wenn eine Spinnbox klicken, eine Tastatur (eine andere QDialog), wo Sie Tasten Ziffern eingeben können. Beide QDialog die aktiviert werden durch den Aufruf QDialog :: exec ();

Wenn jedoch diese zweite QDialog öffnen, schließt die erste nach unten. Ich habe durch sie trat und bemerkte das erste QDialog noch nicht beendet. QDialog 1 sendet „QDialog :: Rejected“ Nachdem ich QDialog beenden 2. Was ich will, ist die QDialog 1 nicht zu Ende überhaupt, braucht es die Spinnbox mit dem eingegebenen Wert zu aktualisieren und eröffnet mehr QDialog der für anderen Spinnbox ist die Benutzer möchte zu bearbeiten später.

Ich denke, es hat mit der QDialog 1 des Ereignisschleife zu tun, indem Ereignisschleife des QDialog 2 getötet. Ich habe versucht, QDialog mit :: show on QDialog 2. Das Widget für einen Moment (Millisekunden) erscheint aber nicht aktiv bleiben. QDialog 1 sofort ebenfalls geschlossen.

War es hilfreich?

Lösung

QDialog 1 auf Qt :: Popup wurde QDialog 2 auf Qt :: Dialog standardmäßig. Ein Popup-Fenster schließt auf eine breite Palette von Veranstaltungen nach unten. Ich habe QDialog 2 Flagge auf Qt gesetzt :: Popup als auch, was nicht nach unten QDialog 1 zu schließen scheint mehr.

Andere Tipps

Die Art und Weise verbal den Code beschrieben haben, sollten Sie das Problem nicht sehen werden Sie beschreiben. Ohne Ihren eigentlichen Code zu sehen, konnte ich nicht eine Vermutung zu wagen, was das Problem verursacht. Allerdings kann ich mit Sicherheit sagen, dass ich exec() auf Dialog A ausgeführt habe, dann in diesem Laufe exec() auf Dialog B (von einer Schaltfläche) und hatte Dialog Einen Aufenthalt zur Verfügung, wenn Dialog B beendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top