2012-04-05 4 views
0

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 ...

Répondre

4

Votre implémentation search_id est une fonction gratuite. Vous devez en faire une fonction membre:

void StudentSearcher::search_id(int idNum){ 
    int idNumber = idNum; 
} 
+0

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

+0

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