Signal/Slot bei QTable mit valueChanged
Verfasst: 3. Januar 2005 20:28
Hi,
ich habe für eine Tabelle QTable folgenden Connect erstellt:
connect( myTable, SIGNAL( valueChanged(int, int) ) , this, SLOT( autoExpand(int, int) ));
der SLOT autoExpand wird weiter unten implementiert.
Nun ist es ja bei dem SIGNAL valueChanged so, dass als Parameter nur (int col, int row) übergeben werden.
Ich habe in meiner Anwendung allerdings zwei verschiedene Tabellen und möchte meine SLOT-Funktion autoExpand nur EINMAL schreiben, d.h. ich suche nach einer Möglichkeit, unabhängig vom Sender diese Funktion zu schreiben.
Konkret: Die Funktion soll Werte in einer Tabelle selbständig ändern, aber dazu muss sie ja erstmal wissen, in WELCHER Tabelle sie dies tun kann: Aber es wird ja durch das SIGNAL kein Pointer auf eine Tabelle weitergegeben.
Was also passieren soll ist dieses:
void autoExpand (int col, int row) {
table = Die Tabelle, von der das Signal emitiert wurde
table->setItem(row, col, item) bzw. table->setText(row, col, QString)
}
Ich hoffe, ihr konntet mir folgen. 8)
Wie kann ich mein Problem am besten lösen?
Wie sähe eine geeignete SLOT/SIGNAL-Funktion aus?
Vielen Dank!
ich habe für eine Tabelle QTable folgenden Connect erstellt:
connect( myTable, SIGNAL( valueChanged(int, int) ) , this, SLOT( autoExpand(int, int) ));
der SLOT autoExpand wird weiter unten implementiert.
Nun ist es ja bei dem SIGNAL valueChanged so, dass als Parameter nur (int col, int row) übergeben werden.
Ich habe in meiner Anwendung allerdings zwei verschiedene Tabellen und möchte meine SLOT-Funktion autoExpand nur EINMAL schreiben, d.h. ich suche nach einer Möglichkeit, unabhängig vom Sender diese Funktion zu schreiben.
Konkret: Die Funktion soll Werte in einer Tabelle selbständig ändern, aber dazu muss sie ja erstmal wissen, in WELCHER Tabelle sie dies tun kann: Aber es wird ja durch das SIGNAL kein Pointer auf eine Tabelle weitergegeben.
Was also passieren soll ist dieses:
void autoExpand (int col, int row) {
table = Die Tabelle, von der das Signal emitiert wurde
table->setItem(row, col, item) bzw. table->setText(row, col, QString)
}
Ich hoffe, ihr konntet mir folgen. 8)
Wie kann ich mein Problem am besten lösen?
Wie sähe eine geeignete SLOT/SIGNAL-Funktion aus?
Vielen Dank!