Auf LineEdit im Dialog zugreifen

Alles rund um die Programmierung mit Qt
Antworten
Algorithm93
Beiträge: 26
Registriert: 24. April 2011 10:37

Auf LineEdit im Dialog zugreifen

Beitrag 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
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

Re: Auf LineEdit im Dialog zugreifen

Beitrag 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
Algorithm93
Beiträge: 26
Registriert: 24. April 2011 10:37

Re: Auf LineEdit im Dialog zugreifen

Beitrag von Algorithm93 »

Hi,

Danke! Das ist genau, was ich gebraucht habe!

Gruß
Algorithm93
Algorithm93
Beiträge: 26
Registriert: 24. April 2011 10:37

Re: Auf LineEdit im Dialog zugreifen

Beitrag 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
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

Re: Auf LineEdit im Dialog zugreifen

Beitrag 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();

Algorithm93
Beiträge: 26
Registriert: 24. April 2011 10:37

Re: Auf LineEdit im Dialog zugreifen

Beitrag 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ß
Antworten