2010-01-30 13 views
1

Le titre décrit assez bien mon problème.Aucun tel signal QTableWidget :: cellChanged (int, int)

La ligne de code incriminé:

connect(table, SIGNAL(cellChanged(row, 5)), this, SLOT(updateSP())); 

Je ne vois aucune raison pour que le signal est pas valide. J'ai fait un googled autour, et ai trouvé quelques personnes avec le même problème, mais les solutions posées là ne fonctionnent pas. J'utilise Qt 4.5.2 sur Ubuntu Karmic, g ++.

Quelqu'un sait ce que je fais mal? La documentation de Trolltech concernant cellChanged() ne mentionne aucune exigence particulière.

Je suis à perte.

Merci pour votre conseil!

+0

Une étiquette plus générale "qt" a été ajoutée. – Wildcat

+0

L'étiquette est plus spécifique .. pas générale. Merci quand même. –

Répondre

6

il me semble que vous ne comprenez pas Qt's Signals and Slots concepts. La macro SLOT SIGNAL & prend une interface . Quelque chose comme

connect(table, SIGNAL(cellChanged(int, int)), this, SLOT(updateSP())); 

pourrait fonctionner, mais vous devez avoir même compte d'arguments dans votre logement, pour le faire fonctionner comme vous attendez:

connect(table, SIGNAL(cellChanged(int, int)), this, SLOT(updateSP(int, int))); 

slot devrait ressembler à ceci:

void ClassFoo::updateSP(int row, int column) 
{ 
    // row is the number of row that was clicked; 
    // column is the number of column that was clicked; 
    // Here we go! It's right place to do some actions. =) 
} 
+0

Ahh! J'ai vu ce conseil exact plus tôt, mais maintenant tout est logique. Ahh d'être naïf. Merci kemiisto. –