我是Qt的新手,偶然发现了一个我无法在Google上找到答案的问题。
说我想发送一个加速度和速度场。我定义了一个自定义信号:
setProperties(QString,double,double,bool)
但是,如何在这样的陈述中说出速度和加速度之间的区别?
connect(dialog, SIGNAL(setProperties(QString,double,double,bool)),
this, SLOT(somerandomslot()));
randomslot
需要获取速度字段和加速度字段并对其进行操作,但在上面的SIGNAL
中,它们只是double
。
答案 0 :(得分:2)
在这种情况下,您的somerandomslot()
函数应该具有匹配的函数签名,以便信号中的值emit
可以传递给它:
void somerandomslot( const QString &foo, double a, double v, bool bar );
然后你的连接电话看起来像这样:
connect(dialog, SIGNAL(setProperties(QString,double,double,bool)), this, SLOT(somerandomslot(QString, double, double, bool)));
当您的somerandomslot()
被调用时,您将可以访问这些变量。