[Geloest] Variable verliert ihren Wert

Alles rund um die Programmierung mit Qt
Antworten
gboelter
Beiträge: 80
Registriert: 5. Dezember 2007 14:52
Wohnort: Davao City, Philippines

[Geloest] Variable verliert ihren Wert

Beitrag von gboelter »

Ich habe gerade ein boeses Verstaendnisproblem, was moeglicherweise eher meinen bescheidenen Kenntnissen in der OOPS Programmierung denn QT zu verdanken ist.

Also, ich habe u. a. die drei folgenden Dateien:

Code: Alles auswählen

// main.cpp
#include <QApplication>
#include "Erpel.h"

int main( int argc, char* argv[]) {
    QApplication app(argc, argv);

    Erpel myErpel;
    myErpel.show();

    return app.exec();
}

Code: Alles auswählen

//Erpel.cpp
#include <QtGui>
// hier folgt weiterer Code ....
#include "Erpel.h"

Erpel::Erpel(QWidget *parent) : QMainWindow( parent )
{
    setupUi(this);
    // hier folgt weiterer Code ....

    connect( actionQuit,SIGNAL (triggered()), this, SLOT(slotClose()) );
    // hier folgt weiterer Code ....
}

Code: Alles auswählen

// Erpel.h
#ifndef ERPEL_H
#define ERPEL_H

#include <QString>
#include "ui_erpel.h"

class Erpel : public QMainWindow, public Ui::Erpel
{
    Q_OBJECT

public:
    Erpel (QWidget * parent = 0);
    ~Erpel();

    QString currentMandant;
    // hier folgt weiterer Code ....
#endif
Mein Problem ist die Variable "QString currentMandant", der entsprechend der Auswahl durch den Benutzer ein Wert zugewiesen wird.

Doch immer, wenn der Benutzer in der mittels Designer erstellten Gui in eine andere Maske wechselt, verliert diese Variable ihren Wert, weil vermutlich die Erpel.h neu abgearbeitet wird.

Ich weiss, die Frage ist schon fast peinlich und in reinem C/C++ haette ich da auch kein Problem, aber hier faellt mir leider im Moment ueberhaupt nichts zu ein.

Wo mache ich hier den Denkfehler, oder anderes formuliert, was muss ich tun, damut meine Variable ihren Wert behaelt und nicht bei jedem Schleifendurchlauf neu initialisiert wird.

Wer auch immer sich also meiner erbarmen wird, mein Dank ist ihm jetzt schon sicher ... :D
Zuletzt geändert von gboelter am 13. Januar 2008 10:50, insgesamt 1-mal geändert.
Guenther
Davao City, Philippines, Planet Earth, 28°C

Qt 4.8.1 for Linux/X11 - Open Source Edition for Application Development
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

ehm.... wo weisst du denn deiner variable einen wert zu?
gboelter
Beiträge: 80
Registriert: 5. Dezember 2007 14:52
Wohnort: Davao City, Philippines

Beitrag von gboelter »

KernelPanic hat geschrieben:ehm.... wo weisst du denn deiner variable einen wert zu?
Die Zuweisung war schon in Ordnung, aber dennoch hast Du mich letztlich auf den richtigen Gedanken gebracht.

Ich hatte etwas versteckt un einer Member Funktion - warum auch immer - das hier stehen:

Code: Alles auswählen

    Erpel erpel;
    if (erpel.dbConnect(currentMandant))
    {
        // weiterer Code ....
    }
Das funktioniert auch einwandfrei mit dem kleinen aber unschoenen Nebeneffekt, dass mein Programm mal kurz einen Abstecher zurueck in die Erpel.cpp gemacht und dort das hier abgearbeitet hat:

Code: Alles auswählen

Erpel::Erpel(QWidget *parent) : QMainWindow( parent )
{
    setupUi(this);
    // hier folgt weiterer Code ....

    connect( actionQuit,SIGNAL (triggered()), this, SLOT(slotClose()) );
    // hier folgt weiterer Code ....
} 
Und damit war die 'liebevoll' gemachte Zuweisung an currentMandant auch gleich wieder weg .... :roll:

Und wieder was dazu gelernt .... :D
Guenther
Davao City, Philippines, Planet Earth, 28°C

Qt 4.8.1 for Linux/X11 - Open Source Edition for Application Development
Antworten