Qt Creator,调用一个函数

Qt Creator, call a function

本文关键字:一个 函数 Creator 调用 Qt      更新时间:2023-10-16

我在 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;

这是学生搜索器中函数的定义.cpp

void search_id(int idNum){
int idNumber = idNum;
}
我已经尝试解决这个问题很长时间

了,我已经尝试了一些非常愚蠢的事情,例如:searchStudent.exec(search_id(55));

并认为它不起作用,因为我认为 .exec() 是构造函数部分......对不起,我对编码和QT有点不熟悉,但是...我似乎不知道如何让这个愚蠢的东西工作。我已经尝试了很多方法,但无济于事...

您的search_id实现是一个自由函数。您需要使其成为成员函数:

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