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); });
这就是应该如何完成的:问题是计时器和更新不是类的一部分。创建正确的类后,这两个问题都消失了。