Seite 1 von 1

struktur als zeiger durch slotargument übergeben?

Verfasst: 11. Oktober 2004 12:52
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!

Verfasst: 11. Oktober 2004 15:23
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.