QObject::connect timer with update() 函数
Posted
技术标签:
【中文标题】QObject::connect timer with update() 函数【英文标题】:QObject::connect timer with update() function 【发布时间】:2016-12-03 16:25:07 【问题描述】:如何使用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();
【问题讨论】:
这应该是怎么做的:doc.qt.io/qt-5/… 【参考方案1】:信号和函数的签名不兼容。因为如果那样的话,根据文档,你不能直接连接它们。 无论如何,您可以使用 lambda 来解决它:
QObject::connect(&timer, SIGNAL(timeout()), [&]() update(&o_1, ..., &scene); );
【讨论】:
问题是计时器和更新不是类的一部分。在创建适当的类后,这两个问题都消失了。以上是关于QObject::connect timer with update() 函数的主要内容,如果未能解决你的问题,请参考以下文章
错误:'QObject' 是 'SerialPort' QObject::connect(&uartObj, SIGNAL(readDone(QByteArray)), this, SLOT(
QObject::connect: 没有这样的信号(类名)(信号名)(属性)