已知在widget.h文件中声明了newExcel函数,声明语句为
void newExcel(const QString &fileName);
在widget.cpp中对该函数进行了实现void Widget::newExcel(const QString &fileName){},
在workthread.cpp文件中引入了widget.h头文件,并定义了一个函数
void workThread::run{QString xlsfile = "D:/mydocuments/data_acquisition/data/test.xlsx"; newExcel(xlsfile);}
报错D:\mydocuments\data_acquisition\convert\workthread.cpp:10: error: 'newExcel' was not declared in this scope
表明 workthread.cpp
文件中 newExcel
函数的调用没有在当前作用域内被识别。这是因为 newExcel
是 Widget
类的一个成员函数,而不是一个全局函数或 workThread
类的成员函数。
解决思路:在 workThread
类中(或在 workThread::run()
方法内部),需要有一个 Widget
类的实例,并通过该实例调用 newExcel
方法。
void workThread::run() {
QString xlsfile = "D:/mydocuments/data_acquisition/data/test.xlsx";
Widget myWidget; // 创建 Widget 类的实例
myWidget.newExcel(xlsfile); // 通过实例调用 newExcel 方法
// ... 其他代码
}