Daten an neues Fenster

Alles rund um die Programmierung mit Qt
Antworten
Ch.Holzer
Beiträge: 6
Registriert: 16. Dezember 2018 18:53

Daten an neues Fenster

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