QT:将其签名中具有基本类型的信号连接到其签名中具有 QVariant 的插槽

QT: Connect a signal with a fundamental type in its signature to a slot with QVariant in its signature

我想将一个信号与一个基本类型的参数连接起来,例如

void toggled(bool checked)
void valueChanged(int i)
...

到其参数类型为 QVariant 的插槽:

void setValue( QVariant &value )

可以使用 Qt 5.14 吗?

Yes, you can connect signals to slots as long as there is an implicit conversion from the signal parameter to the slot parameter.

鉴于 Qvariant 具有来自 int 和 bool 的构造函数,这些构造函数将用于执行隐式转换。

只要你改一下就可以

void setValue(QVariant & value)

进入

void setValue(QVariant value)

void setValue(const QVariant & value)

否则编译将失败并显示静态断言失败(信号和槽参数不兼容)。