1

我在 QT 创建者的不同类中调用函数时遇到问题。

在这里,在主类mainWindow.cpp中,我调用了一个函数,studentsearcher.cpp 这是用户按下按钮时发生的一个函数,问题出在这个

void MainWindow::on_FindButton1_clicked(){

      StudentSearcher searchStudent;
      searchStudent.exec();
      searchStudent.search_id(55);  //   <---- the problem
}

这会产生以下 2 条错误消息:

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 有点不满意,但是...我似乎无法弄清楚如何让这个愚蠢的事情发挥作用。我尝试了很多东西,但都没有成功...

4

1 回答 1

4

您的 search_id 实现是一个免费功能。您需要使其成为成员函数:

void StudentSearcher::search_id(int idNum){
    int idNumber = idNum;
}
于 2012-04-05T18:06:47.090 回答