error: invalid use of non-static member function 'void parse_threads::read(int, QString)' QObject::connect(&sP104_class, &MyTemplateClass<SP104> ::onTriggered, this,read); ^
时间: 2024-02-10 08:04:19 浏览: 144
Python系列:error: invalid command ‘egg-info‘ 安装optuna时报错
这个错误信息显示了`invalid use of non-static member function`,意思是你试图使用非静态成员函数,但是它需要一个对象才能调用,因此无法直接作为连接的槽函数。
在这个特定的情况下,你正在尝试连接一个 `MyTemplateClass<SP104>` 类的 `onTriggered` 信号到 `parse_threads` 类的 `read` 槽函数。但是,`read` 是一个非静态成员函数,需要一个对象才能调用。因此,你需要提供一个对象来连接信号和槽函数。
你可以通过以下方式解决这个问题:
1. 将 `read` 函数声明为静态成员函数,这样就不需要对象来调用它了。但是,如果你需要在 `read` 函数中访问 `parse_threads` 类的成员变量和函数,这种方法可能不可行。
2. 创建一个 `parse_threads` 类的对象,并将它作为第三个参数传递给 `QObject::connect()` 函数。例如:
```
parse_threads *threads = new parse_threads();
QObject::connect(&sP104_class, &MyTemplateClass<SP104>::onTriggered, threads, &parse_threads::read);
```
这将会创建一个新的 `parse_threads` 对象,并将它与 `onTriggered` 信号连接到 `read` 槽函数。
希望这些信息可以帮助你解决问题。如果问题仍然存在,请提供更多的上下文和代码细节,这样我可以更好地帮助你。
阅读全文