我正在学习QT并尝试使我的信号和槽工作。但是我一直没有成功。
这是我的主函数:
"这是我可悲的信号和槽尝试:"
"FilmInput.h"
这里是FilmWriter.cpp文件。
请帮我让信号和槽正常工作,我已经花了数小时时间,但仍然没有接近使其工作的地方。我已在上面的注释中添加了收到的错误信息。
敬礼
int main(int argc, char** argv) {
QApplication app(argc, argv);
FilmInput fi;
FilmWriter fw;
QObject::connect (&fi->okButton, SIGNAL( clicked() ), &fi, SLOT( okButtonClicked() )
); //Error received Base operand of '->' has non-pointer type 'FilmInput'
QObject::connect(&fi,SIGNAL(obtainFilmData(QVariant*)),&fw,SLOT(saveFilmData(QVariant*)));
//Error received No matching function for call to 'QObject::connect(Filminput*, const char*, FilmWriter*, const char*)
fi.show();
return app.exec();
}
"这是我可悲的信号和槽尝试:"
"FilmInput.h"
public:
FilmInput();
void okButtonClicked();
QPushButton* okButton;
signals:
void obtainFilmData(Film *film);
Here is FilmWriter.h
public slots:
int saveFilm(Film &f);
Here is Film Input.cpp
void FilmInput::okButtonClicked(){
Film *aFilm=new Film();
aFilm->setDirector(this->edtDirector->text());
emit obtainFilmData(aFilm);
}
这里是FilmWriter.cpp文件。
void FilmInput::okButtonClicked(){
Film *aFilm=new Film();
aFilm->setDirector(this->edtDirector->text());
emit obtainFilmData(aFilm);
}
请帮我让信号和槽正常工作,我已经花了数小时时间,但仍然没有接近使其工作的地方。我已在上面的注释中添加了收到的错误信息。
敬礼