如何使用void update(*p_1, *p_2, *p_3, *p_4, *scene)
将timer()
功能与QObject::connect
联系起来?
我想要完成的是更新我已通过指针的对象,并调用*scene->update()
来刷新屏幕内容。
我有一个更新功能,如下所示:
void update(*p_1, *p_2, *p_3, *p_4, *scene){
// update functions
scene->update();
}
主要是我得到了:
int main(int argc, char **argv){
// creating objects and calculations
view.show();
QTimer timer;
QObject::connect(&timer, SIGNAL(timeout()), update(&o_1, ..., &scene));
timer.start(1000);
return a.exec();
}
答案 0 :(得分:1)
信号和功能的签名不是兼容的。因为如果是这样,根据文档,您无法直接连接它们 无论如何,你可以使用lambda解决它:
QObject::connect(&timer, SIGNAL(timeout()), [&](){ update(&o_1, ..., &scene); });