C++ QObject::使用update()函数连接计时器

C++ QObject::使用update()函数连接计时器,c++,qt-creator,connect,qobject,C++,Qt Creator,Connect,Qobject,如何使用QObject::connect将void update(*p_1、*p_2、*p_3、*p_4、*scene)与timer()函数连接起来 我想要完成的是更新我传递了指针的对象,并调用*scene->update()刷新屏幕内容 我有一个更新函数,如下所示: void update(*p_1, *p_2, *p_3, *p_4, *scene){ // update functions scene->update(); } 总的来说,我有: int main(i

如何使用
QObject::connect
void update(*p_1、*p_2、*p_3、*p_4、*scene)与
timer()函数连接起来

我想要完成的是更新我传递了指针的对象,并调用
*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();
}

信号和函数的签名不兼容。因为如果是这样,根据文档,您无法直接连接它们。
无论如何,您可以使用lambda来解决此问题:

QObject::connect(&timer, SIGNAL(timeout()), [&](){ update(&o_1, ..., &scene); }); 

这就是应该如何完成的:问题是计时器和更新不是类的一部分。创建正确的类后,这两个问题都消失了。