Object von klasse A in klasse B lesen



  • 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 getKundeNumberLineEdit() const;
    	void setKundeNumberLineEdit(const QString &value);
    };
    

    cpp file

    MainWindow::MainWindow(QWidget *parent, Qt::WFlags flags)
    	: QMainWindow(parent, flags)
    {
    	ui.setupUi(this);
    }
    
    QString MainWindow::getKundeNumberLineEdit() const
    {
    	return ui.kundetNumberLineEdit->text();
    }
    
    void MainWindow::setKundeNumberLineEdit(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->getKundeNumberLineEdit().isEmpty()) // hier tritt eine Fehlermeldung (Object gar nicht initialisiert bzw. = NULL)
    	{
    		//Wie soll ich das Object setzen?
    		//Sorry für die blöde Frage		
    
    	}
    }
    

    😞



  • Ich hab schon viele schwachsinnige Funktionsnamen gesehen - aber der kommt in meine top ten:
    getKundeNumberLineEdit

    So wird das nix - auch nicht mit dem NachtBarn. Ganz öffensichtlich der falsche Beruf, den du gewählt hast. Wie wär's mit Klempner?

    Wobei mein größeres Problem ist, dass mich momentan eines meiner Nasenhaare stört. 🙂

    Obwohl.
    getKundendatenUpdaten
    ist auch nicht schlecht.

    Ich weis wo dein Haus wohnt! Oder was?



  • nach deine Meinung habe ich dich nicht gefragt.
    Es ist doch egal wie die FKT heisst. Es ist nur einen Beispiel



  • Du hast doch sicher irgendwo eine Instanz von A erstellt. Du musst dieser Instanz doch einfach irgendwie den Zeiger auf MainWindow übergeben. Das kann im Konstruktor von A passieren oder du bastelst dir einen Setter in A.

    A:setMainWindow(MainWindow* mw) {
        mainwindow = mw;
    }
    

    Ein check auf 0 wäre hier nicht schlecht. Evtl. mit Q_ASSERT.


Log in to reply