【问题标题】:Parameter value transfer in Qt connectQt connect中的参数值传递
【发布时间】:2014-11-02 13:42:26
【问题描述】:

我正在使用下一行来显示标签上滑块的位置。

connect(slider, SIGNAL(valueChanged(int)), label, SLOT(setNum(int)));

它工作正常。 但是,我真的不明白这个价值是如何转移的。 valueChanged函数的参数如何传递给setNum函数?

【问题讨论】:

标签: qt signals


【解决方案1】:
  • 当您调用connect 时,您指定一个信号和一个槽(或另一个信号)的签名。
  • Qt 使用这些签名来存储两个方法之间的“内部链接”。
  • 当调用信号方法时(例如,使用emit valueChanged(5)Qt 在“链接”列表中查找对应的slot 方法。
  • 然后Qt 调用slot 方法,从第一个signal 方法传递参数。

彻底阅读article。真是太棒了。

【讨论】:

    【解决方案2】:

    每次触发信号时,它都会将int 提供给槽函数。这就像如果你(插槽)去见你的邻居给他鸡蛋,然后他想怎么做就怎么做。

    你可以看到这个优秀的doc about how Qt Signals and Slots作品

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-15
      • 2017-08-14
      • 1970-01-01
      • 2017-12-18
      相关资源
      最近更新 更多