Appel de méthode Qt depuis une fonction statique
Bonjour à tous,
je réalise une interface de contrôle d'une carte national instrument. J'importe donc la bibliothèque NiDaqmw.h
je cherche à mettre à jour l'interface quand une tâche NI se termine. Pour cela je définies la fonction DoneCallBack qui doit être une fonction statique.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| // ui.h
class ui: public QWidget
{
Q_OBJECT
private :
int N;
QpushButton *boutton;
static int32 CVICALLBACK DoneCallback (TaskHandle taskHandle, int32 status, void *callbackData);
// le paramètre intéressant c'est callBackData, je m'en sers pour passer à la fonction une référence à un objet dans mon cas : "mainWindow"
};
// .cpp
ui::ui(QWidget *parent)
: QWidget(parent)
{
int32 error;
aiChannelNumber = 1;
qRegisterMetaType<float64>("float64");
//aiRecordPB
boutton= new QPushButton ("Record!");
}
int32 CVICALLBACK ui::DoneCallback(TaskHandle taskHandle, int32 status, void *callbackData)
{
MainWindow* monui= (MainWindow*) callbackData;
qDebug()<<"Done!\n"; //marche
monui->N = ui->N+1; //marche
monui->boutton->setText("données acquises); //crashe
return(0);
} |
J'arrive à changer des variables de l'objet ui depuis la fonctions "ui->N = 5" mais pas à appeler ses méthodes/fonctions. Je ne sais pas si c'est possible et si oui d'où viendrait l'erreur : problème de C++ ou de Qt?
merci d'avance pour votre aide.