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.
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?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
merci d'avance pour votre aide.
Partager