Bonjour tous les fans de ce forum. je developpe en c++ sous Qt, j'ai receuilli le nom d'une fonction dans une variable de type string. Maintenant je cherche à exécuter ma fonction grace à cette variable mais je ne vois aucune fonction pouvant m'aider à faire ce casting. j'avais fait une telle chose en php pour créer automatiquement mes setters et mes getters, il y a un peu longtemps . Veuillez regarder la portion du code c++ avec moi et l'erreur du compilateur est ecrite en bas :
Regarder un peu l'erreur qu'il me signale
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 QSqlQuery req=QSqlQuery(); req.prepare("SELECT libmenu from menu "); if(req.exec()) { while(req.next()) { QMenu* bb; bb =menuBar()->addMenu("&"+req.value(0).toString()); QSqlQuery reqq=QSqlQuery(); reqq.prepare("SELECT fonction.libfonction, fonction.codefonction FROM fonction, menu WHERE fonction.idmenu = menu.idmenu and menu.idmenu=1 AND menu.libmenu =? "); reqq.addBindValue("Fichier"); if(reqq.exec()) { while(reqq.next()) { QString uu; kk = bb->addAction("&"+reqq.value(0).toString()); uu="fct_"+reqq.value(1).toString()+"()"; connect(this->kk,SIGNAL(triggered()),this,SLOT(uu)); //uu est ma string, kk ma QAction qui me permet d'écrire d'ajouter des sous menu et faire leur connexion } } } }
QObject::connect: Parentheses expected, slot menuprincipale::uu in ..\principale\menuprincipale.cpp:29
QObject::connect: (receiver name: 'menuprincipale')
Alors que le nom declaratif de mes methodes sont contenus aussi par une propriété dans ma base de données, raison pour laquelle j'ai opté pour recueillir d'une requete. j'ai opté également cette methode pour reduire le nombre de ligne de code que j'écris souvent pour créer des Menu, sous-menus et pour faire des connexions entre mes sous-menu et leurs fonctions afférentes.
Veuillez m'excuser si j'ai enfreins à certaines règles de ce forum.
Un tel cast n'existe pas en c++?
Si oui n'est-il pas intégré à Qt?
Vos conseils et critiques sont les bienvenues. Merci
Partager