我在QT创建者的另一个类中调用函数时遇到问题。
在主要课程mainWindow.cpp
中,我从studentsearcher.cpp
调用了一个函数
这是当用户按下按钮时发生的功能,问题出在这个
void MainWindow::on_FindButton1_clicked(){
StudentSearcher searchStudent;
searchStudent.exec();
searchStudent.search_id(55); // <---- the problem
}
这会产生以下两条错误消息:
1.undefined reference to StudentSearcher::search_id(int)
2.collect2: ld returned 1 exit status
以下是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;
以下是studentSearcher.cpp中函数的定义
void search_id(int idNum){
int idNumber = idNum;
}
我一直试图解决这个问题很久了,我尝试了一些非常愚蠢的事情:searchStudent.exec(search_id(55));
并认为它不起作用,因为我认为.exec()是构造函数的一部分......对不起,我对编码和QT有点不高兴但是......我似乎无法想象如何让这个愚蠢的事情发挥作用。我尝试过很多东西,但无济于事......
答案 0 :(得分:4)
您的search_id实现是一项免费功能。你需要使它成为一个成员函数:
void StudentSearcher::search_id(int idNum){
int idNumber = idNum;
}