hallo alle zusammen,
folgende Anwendung habe ich:
HeaderFile:
class MainWindow: public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0, Qt::WFlags flags = 0);
~MainWindow();
QString getKundeName() const;
void setKundeName(const QString &value);
};
cpp file
MainWindow::MainWindow(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
}
QString MainWindow::getKundeName() const
{
return ui.kundetNumberLineEdit->text();
}
void MainWindow::setKundeName(const QString &value)
{
return ui.kundeNumberLineEdit->setText(value);
}
eine andere Klasse:
#include "MainWindow.h"
class A{
......
public:
void getKundendatenUpdaten();
....
private:
MainWindow * mainwindow;
};
cpp File der klasse A
void A::getKundendatenUpdaten()
{
if(!mainwindow->getKundeName().isEmpty()) // hier tritt eine Fehlermeldung (Object gar nicht initialisiert bzw. = NULL)
{
//Wie soll ich das Object setzen?
//Sorry für die blöde Frage
}
}
....
Object von klasse A in klasse B lesen
Re: Object von klasse A in klasse B lesen
Dein Zeiger mainwindow ist nicht initialisiert bzw, im wurde nichts zugewiesen.
Du könntest deiner Methode einen Zeiger mitgeben.
Oder du mußt über eine andere Methode vorher deiner Membervariablen die Adresse von MainWindow zuweisen.
Nur einen Zeiger deklarieren reicht da nicht aus.
Aber du könntest deiner Klasse A doch einfach den Namen geben, und nicht Klasse den Namen aus Mainwindow holen zu lassen.
Das kannst du ja z.B. durch einen Button Update auslösen.
Du könntest deiner Methode einen Zeiger mitgeben.
Code: Alles auswählen
void A::getKundendatenUpdaten(MainWindow * apMainwindow)
{
if (apMainwindow != NULL)
{
if (apMainwindow->getKundeName().isEmpty() == false)
{
}
}
}
Nur einen Zeiger deklarieren reicht da nicht aus.
Aber du könntest deiner Klasse A doch einfach den Namen geben, und nicht Klasse den Namen aus Mainwindow holen zu lassen.
Das kannst du ja z.B. durch einen Button Update auslösen.
Code: Alles auswählen
void A::setKundendatenUpdaten(const QString& acrName)
{
if (acrName.isEmpty() == false)
{
}
}