Gewusst wie: übergeben von Daten aus einem QDialog?
In Qt, was ist der eleganteste Weg, um die übergabe von Daten aus einem QDialog Unterklasse der Komponente, die den dialog in den Fällen, wo Sie brauchen, zu überliefern, etwas komplexer als ein boolean oder ein integer-return-code?
Ich denke emittieren eine benutzerdefinierte signal von der accept()
slot, aber gibt es etwas anderes?
Du musst angemeldet sein, um einen Kommentar abzugeben.
QDialog hat seine eigene message-loop und da ist es halt workflow-Anwendung, ich verwende in der Regel dem folgenden Schema:
accept()
slot. Dieconnect
signal zu sein scheint, den entsprechenden.Im Allgemeinen Fall, wenn die Daten ist relativ einfach, ich mag, um einen oder mehrere benutzerdefinierte Signale und emittieren diese als notwendig. Einfache oder komplexe Daten, ich werde in der Regel bieten Zugriffsmethoden für die Daten. Im komplexen Fall, ich möchte dann schließen Sie einen slot, um die
accepted
signal, und erhalten die gewünschten Informationen in diesem slot. Der Nachteil hierbei ist, dass Sie müssen in der Regel verlassen sich auf das speichern einen Zeiger auf die dialog -, oder mit dersender()
hack, um herauszufinden, welches Objekt ausgelöst, der slot.