J'ai un problème avec l'appel d'une fonction dans une classe différente du créateur QT.Qt Creator, appelez une fonction
Ici, dans la classe principale mainWindow.cpp
, j'appelle une fonction de studentsearcher.cpp
Ceci est une fonction qui se produit lorsque le bouton presse utilisateur, et le problème est avec cette
void MainWindow::on_FindButton1_clicked(){
StudentSearcher searchStudent;
searchStudent.exec();
searchStudent.search_id(55); // <---- the problem
}
Cela produit les 2 suivants messages d'erreur :
1.undefined reference to StudentSearcher::search_id(int)
2.collect2: ld returned 1 exit status
Voici une partie du fichier StudentSearcher.h:
class StudentSearcher : public QDialog
{
Q_OBJECT
public:
explicit StudentSearcher(QWidget *parent = 0);
void search_id(int idNum);
~StudentSearcher();
private slots:
private:
Ui::StudentSearcher *ui;
Et voici la définition de la fonction dans le studentSearcher.cpp
void search_id(int idNum){
int idNumber = idNum;
}
J'ai essayé de résoudre ce problème depuis longtemps maintenant, j'ai essayé des choses assez stupides comme ceci: searchStudent.exec(search_id(55));
Et pensé que cela ne fonctionnerait pas, parce que je pense que le .exec() est la partie du constructeur .... Désolé, je suis un peu nooby avec le codage et QT mais ... je n'arrive pas à comprendre comment faire fonctionner cette chose stupide. J'ai essayé beaucoup de choses mais en vain ...
Hey quand j'ai remplacé la fonction par ce que vous avez mis, il y avait un problème avec le fichier d'en-tête. Il a continué à dire ceci: qualification supplémentaire 'StudentSearcher ::' sur le membre 'search_id' – Gabe
Corrigé, dans l'en-tête et le haut du fichier cpp la fonction devait être déclarée comme je l'avais précédemment, mais dans la définition elle a été déclarée la comme tu l'as suggéré. – Gabe