1

QT Creator で別のクラスの関数を呼び出す際に問題が発生しています。

ここで、メインクラスで、 これはユーザーがボタンを押したときに発生する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 に答える