【问题标题】:QT: Connect a signal with a fundamental type in its signature to a slot with QVariant in its signatureQT:将其签名中具有基本类型的信号连接到其签名中具有 QVariant 的插槽
【发布时间】:2020-04-30 07:24:41
【问题描述】:

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

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

到一个参数为 QVariant 类型的槽:

void setValue( QVariant &value )

这可能使用 Qt 5.14 吗?

【问题讨论】:

    标签: c++ qt signals-slots variant qtwidgets


    【解决方案1】:

    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 的构造函数,这些构造函数将用于执行隐式转换。

    【讨论】:

    • 谢谢,理论上回答了这个问题。
    【解决方案2】:

    只要你改变你就可以

    void setValue(QVariant & value)
    

    进入

    void setValue(QVariant value)
    

    void setValue(const QVariant & value)
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      相关资源
      最近更新 更多