Seite 1 von 1

Auf LineEdit im Dialog zugreifen

Verfasst: 26. Dezember 2011 11:59
von Algorithm93
Hallo,

ich habe eine Klasse "mainwindow", die eine Instanz der Klasse "addPart" vom Typ QDialog startet:

Code: Alles auswählen

void MainWindow::addPartClickedHandler()
{
    addPart p;
    p.exec();
}
in diesem Dialog sind LineEdits enthalten, die der Benutzer ausfüllen soll.
Wenn dann der Benutzer den Dialog mit "accept" verlässt, sollen die Eingaben in ein TableWidget übertragen werden, dass aber Bestandteil von "mainwindow" ist.

Mein Problem: Wie kann ich von mainwindow aus auf die Werte der LineEdits des QDialogs zugreifen?

Gruß
Algorithm93

Re: Auf LineEdit im Dialog zugreifen

Verfasst: 26. Dezember 2011 16:19
von DBGTMaster
Indem du dem Dialog "addPart" Methoden implementiert, welche dazu helfen sollten, die Werte aus dem Eingabefeldern auszulesen:

Code: Alles auswählen

QString addPart::getInputA() {
  return ui->inputA->text();
}
Und dann im MainWindow:

Code: Alles auswählen

void MainWindow::addPartClickedHandler()
{
    addPart p;
    p.exec();

   QString string = p.getInputA();
}
lG

Re: Auf LineEdit im Dialog zugreifen

Verfasst: 26. Dezember 2011 17:56
von Algorithm93
Hi,

Danke! Das ist genau, was ich gebraucht habe!

Gruß
Algorithm93

Re: Auf LineEdit im Dialog zugreifen

Verfasst: 26. Dezember 2011 23:49
von Algorithm93
Hallo,

so jetzt habe ich doch nochmal eine Frage:
Im "mainwindow" gibt es auch einen LineEdit, dessen Inhalt ich gerne im Dialog anzeigen möchte.

Eine Funktion:

Code: Alles auswählen

QString MainWindow::Benutzer_Text()
{
      return ui->lineEdit->Text();
}
habe ich schon.
Doch wie kann ich die jetzt vom Dialog aus aufrufen?
Das Problem ist, dass ich hier nicht einfach eine neue Instanz von MainWindow starten kann, weil der Benutzer ja die Daten eingeben muss...

Gruß
Algorithm93

Re: Auf LineEdit im Dialog zugreifen

Verfasst: 27. Dezember 2011 10:40
von dazedly
Du kannst doch auf die Methoden im Dialog zugreifen.

Code: Alles auswählen


    addPart p;
    p.ui->inputA->setText(ui->lineEdit->Text());
    p.exec();

   QString string = p.getInputA();


Re: Auf LineEdit im Dialog zugreifen

Verfasst: 27. Dezember 2011 11:28
von Algorithm93
Hallo,

Ja, stimmt danke! Denken hilft :-)

Ich habe noch eine andere Methode gefunden:

Code: Alles auswählen

class addPart : public QDialog
{
    Q_OBJECT

public:
    explicit addPart(QWidget *parent = 0, QString text = 0);
    ~addPart();
...und dann beim Erstellen den String übergeben...
Aber so ist es besser.

Gruß