Seite 1 von 1

Daten an neues Fenster

Verfasst: 26. Januar 2021 19:46
von Ch.Holzer
Hallo,
vereinfacht, ich möchte in einem neuen Fenster z.B. einen String ändern,
den ich erst im ersten Fenster festgelegt habe.

Der geänderte String wird nicht dargestellt, sondern nur der default Wert.


mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include "mydialog.h"
#include <QMainWindow>
#include <QString>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{ Q_OBJECT

public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
myDialog * my_Dialog;
QString TEST;

public slots:
void Test (const QString &);

private:
Ui::MainWindow *ui;

private slots:
void on_action1234_triggered();

};
#endif // MAINWINDOW_H


mydialog.h

#ifndef MYDIALOG_H
#define MYDIALOG_H

#include <QDialog>
#include <QString>

namespace Ui {
class myDialog;
}

class myDialog : public QDialog
{
Q_OBJECT

public:
explicit myDialog(QWidget *parent = nullptr);
~myDialog();

private slots:
void on_buttonBox_accepted();
void Name_schreiben ();

private:
Ui::myDialog *ui;
QString TEST = "alter Text";

signals:
void retName(const QString &);
};

#endif // MYDIALOG_H

main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "mydialog.h"

#include <QString>

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{ ui->setupUi(this);
}

MainWindow::~MainWindow()
{ delete ui;
}

void MainWindow::Test(const QString & TEST)
{ ui->label->setText(TEST);
}

void MainWindow::on_action1234_triggered()
{ QString TEST_1 = "neuer Text";
my_Dialog = new myDialog();
connect(my_Dialog, SIGNAL(retName(const QString &)), this, SLOT (Test (const QString &)));
my_Dialog->exec();
}

mydialog.cpp

#include "mydialog.h"
#include "ui_mydialog.h"
#include <QString>

myDialog::myDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::myDialog)
{
ui->setupUi(this);
ui->lineEdit->setText(TEST);
connect(ui->lineEdit, &QLineEdit::editingFinished, this, &myDialog::Name_schreiben);
}

myDialog::~myDialog()
{ delete ui;
}

void myDialog::on_buttonBox_accepted()
{ emit retName(TEST);
close();
}

void myDialog::Name_schreiben()
{ TEST = ui->lineEdit->text();
}