<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Kommunikation zwischen zwei Klassen]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hab ein Problem zwischen zwei Klassen.</p>
<p>Die Klasse MainWindow soll per Klick zufällige Zahlen erstellen und diese dann unter anderem anschließend als eine Zeichenkette an eine String(stringForm) initialisieren.</p>
<p>Die stringForm ist als public in MainWindow vereinbart.</p>
<p>Nach einem weiteren Klick soll dann eine neue Instanz der Klasse Form erstellt werden und die stringForm soll dort in der ui-&gt;lineEdit_2-&gt;setText(); angezeigt werden, doch leider funktioniert das nicht. Ich komm nicht drauf warum! bitte um Hilfe oder zumindest Hilfestellung. Vielen Dank</p>
<p>Hier mal die beiden Klassen</p>
<pre><code>#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include &lt;QMainWindow&gt;

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    QString stringForm;

private slots:
    void on_actionClose_triggered();
    void on_closeButton_clicked();

public slots:
    void on_startButton_clicked();
    void on_saveButton_clicked();

private:
    Ui::MainWindow *ui;
    void bildVerbindung();
    bool dbVerbindung();
    bool dbConnect;
};

#endif // MAINWINDOW_H
</code></pre>
<pre><code>#include &quot;mainwindow.h&quot;
#include &quot;ui_mainwindow.h&quot;
#include &lt;QtSql&gt;
#include &lt;QMessageBox&gt;
#include &lt;random&gt;
#include &lt;algorithm&gt;
#include &quot;form.h&quot;

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui-&gt;setupUi(this);
    setFixedSize(300,365);

    bildVerbindung();
    dbVerbindung();

    QFont font(&quot;Times&quot;,23, QFont::Bold,true);
    ui-&gt;lineEdit-&gt;setFont(font);
    ui-&gt;lineEdit-&gt;setAlignment(Qt::AlignCenter);

    ui-&gt;lineEdit_2-&gt;setFont(font);
    ui-&gt;lineEdit_2-&gt;setAlignment(Qt::AlignCenter);

    ui-&gt;lineEdit_3-&gt;setFont(font);
    ui-&gt;lineEdit_3-&gt;setAlignment(Qt::AlignCenter);

    ui-&gt;lineEdit_4-&gt;setFont(font);
    ui-&gt;lineEdit_4-&gt;setAlignment(Qt::AlignCenter);

    ui-&gt;lineEdit_5-&gt;setFont(font);
    ui-&gt;lineEdit_5-&gt;setAlignment(Qt::AlignCenter);

    ui-&gt;lineEdit_6-&gt;setFont(font);
    ui-&gt;lineEdit_6-&gt;setAlignment(Qt::AlignCenter);

}

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

void MainWindow::on_actionClose_triggered()
{
    this-&gt;close();
}

void MainWindow::on_closeButton_clicked()
{
    this-&gt;close();
}

void MainWindow::bildVerbindung()
{
    QPixmap myPix;
    myPix.load(&quot;D:/Eigene Dateien/Desktop/lotto.jpg&quot;);

    myPix = myPix.scaledToHeight(150);
    ui-&gt;label-&gt;setPixmap(myPix);
    ui-&gt;label-&gt;resize(myPix.size());
}

bool MainWindow::dbVerbindung()
{
    dbConnect = true;

    QSqlDatabase myBase = QSqlDatabase::addDatabase(&quot;QSQLITE&quot;);
    myBase.setDatabaseName(&quot;D:/Eigene Dateien/Desktop/SQLite/lottodb.db&quot;);

    if(!(myBase.open() == true))
    {
        QMessageBox::critical(this, &quot;Error&quot;,&quot;No connection wiht database!&quot;);
        return dbConnect = false;

    }
    return dbConnect;
}

void MainWindow::on_startButton_clicked()
{
    QSet&lt;QString&gt;mySetList;
    int loop = 0;

    while(loop &lt;= 6)
    {
        std::random_device rd;
        std::mt19937 mt(rd());
        std::uniform_real_distribution&lt;double&gt; dist(1,49);
        int nummer = dist(mt);

        QString stringNummer = QString::number(nummer);

        mySetList.insert(stringNummer);
        loop++;
    }

    QList&lt;QString&gt;myListList=mySetList.toList();
    std::sort(myListList.begin(),myListList.end());

    ui-&gt;lineEdit-&gt;setText(myListList.at(0));
    ui-&gt;lineEdit_2-&gt;setText(myListList.at(1));
    ui-&gt;lineEdit_3-&gt;setText(myListList.at(2));
    ui-&gt;lineEdit_4-&gt;setText(myListList.at(3));
    ui-&gt;lineEdit_5-&gt;setText(myListList.at(4));
    ui-&gt;lineEdit_6-&gt;setText(myListList.at(5));

    //diesen string kann ich nicht in Form benutzen,
    stringForm = myListList.at(0)+&quot;, &quot;+myListList.at(1)+&quot;,    &quot;+myListList.at(2)+&quot;, &quot;+myListList.at(3)+&quot;, &quot;+myListList.at(4)+&quot;, &quot;+myListList.at(5);

    mySetList.clear();
    myListList.clear();
}

void MainWindow::on_saveButton_clicked()
{
    if(dbConnect == true)
    {
        Form *newForm = new Form();
        newForm-&gt;show();
    }
}
</code></pre>
<pre><code>#ifndef FORM_H
#define FORM_H

#include &lt;QWidget&gt;
#include &lt;QtSql&gt;
#include &quot;mainwindow.h&quot;

namespace Ui {
class Form;
}

class Form : public QWidget
{
    Q_OBJECT

public:
    explicit Form(QWidget *parent = 0);
    ~Form();
    void showInfo();

private slots:
    void on_closeButton_clicked();

public slots:
    void on_saveButton_clicked();

private:
    Ui::Form *ui;
    QSqlTableModel *myModel;
};

#endif // FORM_H
</code></pre>
<pre><code>#include &quot;form.h&quot;
#include &quot;ui_form.h&quot;
#include &quot;mainwindow.h&quot;
#include &lt;QDate&gt;

Form::Form(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Form)
{
    ui-&gt;setupUi(this);
    setWindowModality(Qt::ApplicationModal);

    QFont font(&quot;Times&quot;,15, QFont::Bold,true);

    ui-&gt;lineEdit-&gt;setFont(font);
    ui-&gt;lineEdit-&gt;setAlignment(Qt::AlignCenter);

    ui-&gt;lineEdit_2-&gt;setFont(font);
    ui-&gt;lineEdit_2-&gt;setAlignment(Qt::AlignCenter);
    showInfo();

}

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

void Form::on_closeButton_clicked()
{
    this-&gt;close();
}

void Form::on_saveButton_clicked()
{

}

void Form::showInfo()
{
    QString datum = QDate::currentDate().toString();
    MainWindow zeiger;

    ui-&gt;lineEdit-&gt;setText(datum);
    ui-&gt;lineEdit_2-&gt;setText(zeiger.stringForm);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/334281/kommunikation-zwischen-zwei-klassen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 19:25:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/334281.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 Sep 2015 07:04:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kommunikation zwischen zwei Klassen on Thu, 03 Sep 2015 07:04:09 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hab ein Problem zwischen zwei Klassen.</p>
<p>Die Klasse MainWindow soll per Klick zufällige Zahlen erstellen und diese dann unter anderem anschließend als eine Zeichenkette an eine String(stringForm) initialisieren.</p>
<p>Die stringForm ist als public in MainWindow vereinbart.</p>
<p>Nach einem weiteren Klick soll dann eine neue Instanz der Klasse Form erstellt werden und die stringForm soll dort in der ui-&gt;lineEdit_2-&gt;setText(); angezeigt werden, doch leider funktioniert das nicht. Ich komm nicht drauf warum! bitte um Hilfe oder zumindest Hilfestellung. Vielen Dank</p>
<p>Hier mal die beiden Klassen</p>
<pre><code>#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include &lt;QMainWindow&gt;

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    QString stringForm;

private slots:
    void on_actionClose_triggered();
    void on_closeButton_clicked();

public slots:
    void on_startButton_clicked();
    void on_saveButton_clicked();

private:
    Ui::MainWindow *ui;
    void bildVerbindung();
    bool dbVerbindung();
    bool dbConnect;
};

#endif // MAINWINDOW_H
</code></pre>
<pre><code>#include &quot;mainwindow.h&quot;
#include &quot;ui_mainwindow.h&quot;
#include &lt;QtSql&gt;
#include &lt;QMessageBox&gt;
#include &lt;random&gt;
#include &lt;algorithm&gt;
#include &quot;form.h&quot;

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui-&gt;setupUi(this);
    setFixedSize(300,365);

    bildVerbindung();
    dbVerbindung();

    QFont font(&quot;Times&quot;,23, QFont::Bold,true);
    ui-&gt;lineEdit-&gt;setFont(font);
    ui-&gt;lineEdit-&gt;setAlignment(Qt::AlignCenter);

    ui-&gt;lineEdit_2-&gt;setFont(font);
    ui-&gt;lineEdit_2-&gt;setAlignment(Qt::AlignCenter);

    ui-&gt;lineEdit_3-&gt;setFont(font);
    ui-&gt;lineEdit_3-&gt;setAlignment(Qt::AlignCenter);

    ui-&gt;lineEdit_4-&gt;setFont(font);
    ui-&gt;lineEdit_4-&gt;setAlignment(Qt::AlignCenter);

    ui-&gt;lineEdit_5-&gt;setFont(font);
    ui-&gt;lineEdit_5-&gt;setAlignment(Qt::AlignCenter);

    ui-&gt;lineEdit_6-&gt;setFont(font);
    ui-&gt;lineEdit_6-&gt;setAlignment(Qt::AlignCenter);

}

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

void MainWindow::on_actionClose_triggered()
{
    this-&gt;close();
}

void MainWindow::on_closeButton_clicked()
{
    this-&gt;close();
}

void MainWindow::bildVerbindung()
{
    QPixmap myPix;
    myPix.load(&quot;D:/Eigene Dateien/Desktop/lotto.jpg&quot;);

    myPix = myPix.scaledToHeight(150);
    ui-&gt;label-&gt;setPixmap(myPix);
    ui-&gt;label-&gt;resize(myPix.size());
}

bool MainWindow::dbVerbindung()
{
    dbConnect = true;

    QSqlDatabase myBase = QSqlDatabase::addDatabase(&quot;QSQLITE&quot;);
    myBase.setDatabaseName(&quot;D:/Eigene Dateien/Desktop/SQLite/lottodb.db&quot;);

    if(!(myBase.open() == true))
    {
        QMessageBox::critical(this, &quot;Error&quot;,&quot;No connection wiht database!&quot;);
        return dbConnect = false;

    }
    return dbConnect;
}

void MainWindow::on_startButton_clicked()
{
    QSet&lt;QString&gt;mySetList;
    int loop = 0;

    while(loop &lt;= 6)
    {
        std::random_device rd;
        std::mt19937 mt(rd());
        std::uniform_real_distribution&lt;double&gt; dist(1,49);
        int nummer = dist(mt);

        QString stringNummer = QString::number(nummer);

        mySetList.insert(stringNummer);
        loop++;
    }

    QList&lt;QString&gt;myListList=mySetList.toList();
    std::sort(myListList.begin(),myListList.end());

    ui-&gt;lineEdit-&gt;setText(myListList.at(0));
    ui-&gt;lineEdit_2-&gt;setText(myListList.at(1));
    ui-&gt;lineEdit_3-&gt;setText(myListList.at(2));
    ui-&gt;lineEdit_4-&gt;setText(myListList.at(3));
    ui-&gt;lineEdit_5-&gt;setText(myListList.at(4));
    ui-&gt;lineEdit_6-&gt;setText(myListList.at(5));

    //diesen string kann ich nicht in Form benutzen,
    stringForm = myListList.at(0)+&quot;, &quot;+myListList.at(1)+&quot;,    &quot;+myListList.at(2)+&quot;, &quot;+myListList.at(3)+&quot;, &quot;+myListList.at(4)+&quot;, &quot;+myListList.at(5);

    mySetList.clear();
    myListList.clear();
}

void MainWindow::on_saveButton_clicked()
{
    if(dbConnect == true)
    {
        Form *newForm = new Form();
        newForm-&gt;show();
    }
}
</code></pre>
<pre><code>#ifndef FORM_H
#define FORM_H

#include &lt;QWidget&gt;
#include &lt;QtSql&gt;
#include &quot;mainwindow.h&quot;

namespace Ui {
class Form;
}

class Form : public QWidget
{
    Q_OBJECT

public:
    explicit Form(QWidget *parent = 0);
    ~Form();
    void showInfo();

private slots:
    void on_closeButton_clicked();

public slots:
    void on_saveButton_clicked();

private:
    Ui::Form *ui;
    QSqlTableModel *myModel;
};

#endif // FORM_H
</code></pre>
<pre><code>#include &quot;form.h&quot;
#include &quot;ui_form.h&quot;
#include &quot;mainwindow.h&quot;
#include &lt;QDate&gt;

Form::Form(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Form)
{
    ui-&gt;setupUi(this);
    setWindowModality(Qt::ApplicationModal);

    QFont font(&quot;Times&quot;,15, QFont::Bold,true);

    ui-&gt;lineEdit-&gt;setFont(font);
    ui-&gt;lineEdit-&gt;setAlignment(Qt::AlignCenter);

    ui-&gt;lineEdit_2-&gt;setFont(font);
    ui-&gt;lineEdit_2-&gt;setAlignment(Qt::AlignCenter);
    showInfo();

}

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

void Form::on_closeButton_clicked()
{
    this-&gt;close();
}

void Form::on_saveButton_clicked()
{

}

void Form::showInfo()
{
    QString datum = QDate::currentDate().toString();
    MainWindow zeiger;

    ui-&gt;lineEdit-&gt;setText(datum);
    ui-&gt;lineEdit_2-&gt;setText(zeiger.stringForm);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2466661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2466661</guid><dc:creator><![CDATA[Norikko]]></dc:creator><pubDate>Thu, 03 Sep 2015 07:04:09 GMT</pubDate></item><item><title><![CDATA[Reply to Kommunikation zwischen zwei Klassen on Thu, 03 Sep 2015 07:15:38 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Spendiere deiner Form-Klasse eine Funktion setString so ähnlich wie.</p>
<pre><code>void Form::setString(QString string)
{
    ui-&gt;lineEdit_2-&gt;setText(string);
}
</code></pre>
<p>und rufe die bei Bedarf auf.<br />
Du scheinst noch Verständnisprobleme mit Klassen im Allgemeinen zu haben. Bist du sicher, dass da ein Qt-GUI Projekt schon das Richtige für dich ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2466666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2466666</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 03 Sep 2015 07:15:38 GMT</pubDate></item></channel></rss>