struktur als zeiger durch slotargument übergeben?

Alles rund um die Programmierung mit Qt
Antworten
volture
Beiträge: 18
Registriert: 14. September 2004 15:27

struktur als zeiger durch slotargument übergeben?

Beitrag von volture »

also ich hab folgendes problem:
ich möchte eine struktur, mit hilfe eines zeigers, einem slot übergeben.

Quellcode:

...h

typedef struct{
char name[10];
int wert;
....

} t_meineStruct;

extern t_meineStruct meineStruct[num];


...h

public slots:
void newSlot(struct t_meineStruct *zgr);


...cpp

struct t_meineStruct *pz;
pz = &meineStruct[k];

connect( timer, SIGNAL( timeout()), this, SLOT( newSlot(pz)));

void Dialog::newSlot(struct t_meineStruct *zgr)
{
...
}

aber irgendwie läuft das nicht. kann mir irgendjemand sagen wo der fehler liegt.
ich find ihn nicht.

volture!
lepsai
Beiträge: 573
Registriert: 14. September 2004 21:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von lepsai »

Bei signal und slot müssen die Parameter übereinstimmen. Dies ist bei dir nicht der Fall. Ausserdem ist es gar nicht möglich, irgendwelche Parameter an die connect() oder connect()-ähnliche Funktionen wie z.B. singleShot() zu übergeben.

Dadurch, dass deine Strukturvariable anscheinend global ist, könntest du das folgendermassen lösen:

void Dialog::newSlot()
{
struct t_meineStruct *pz;
pz = &meineStruct[k];

doIt(pz);
}

oder mach meineStruct zu Klassenvariable.

Dann wird's laufen.
Antworten