2009-06-29 1 views
4

Ich habe zwei Formulare, das Hauptformular, das ein Dialogfeld öffnet, das ein Textfeld enthält. Wie kann ich den Text aus dem Textfeld zurück an das Hauptformular übergeben? Ich habe viele verschiedene Methoden ausprobiert, aber ich denke, ich vermisse etwas Einfaches. Danke für jede Hilfe.Übergeben von Variablen von einem Formular zum anderen in Qt

Antwort

3

Das Dialogfeld ist nach dem Schließen noch vorhanden. So können Sie, aus der Hauptform, etwas tun, wie folgt aus:

QString text = subform->textEdit->text(); 

Dies setzt voraus, Ihre Dialogfeld ist subform und der Name, den Sie den Text bearbeiten Feld gab, ist textEdit. Stellen Sie sicher, dass Sie textEdit im Designer veröffentlichen. Wenn Sie textEdit nicht öffentlich machen möchten, können Sie einen Getter zu subform hinzufügen.

+0

Dies ist im Grunde, was ich gerade herausgefunden habe, ich habe es richtig gemacht..Ich "nur" den richtigen Weg "vergessen", um C++ - Funktionen innerhalb von Klassen zu machen. Ich habe QString getValue() anstelle von QString MainForm :: getValue() gemacht. – whatWhat

0

Wenn Sie das Muster verwenden, erstellen Sie das Modellobjekt (Container für Ihre Daten) und übergeben es an das Textfeld, um den Textwert selbst einzugeben. Wenn der Dialog geschlossen ist, lesen Sie einfach den Wert aus dem Modell und legen Sie ihn dort ab, wo Sie ihn benötigen.