QObject :: connect timer with update()函数

时间:2016-12-03 16:25:08

标签: c++ qt-creator connect qobject

如何使用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();
}

1 个答案:

答案 0 :(得分:1)

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

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