【发布时间】:2014-11-02 13:42:26
【问题描述】:
我正在使用下一行来显示标签上滑块的位置。
connect(slider, SIGNAL(valueChanged(int)), label, SLOT(setNum(int)));
它工作正常。 但是,我真的不明白这个价值是如何转移的。 valueChanged函数的参数如何传递给setNum函数?
【问题讨论】:
-
signals and slots 的可能重复项
我正在使用下一行来显示标签上滑块的位置。
connect(slider, SIGNAL(valueChanged(int)), label, SLOT(setNum(int)));
它工作正常。 但是,我真的不明白这个价值是如何转移的。 valueChanged函数的参数如何传递给setNum函数?
【问题讨论】:
connect 时,您指定一个信号和一个槽(或另一个信号)的签名。 Qt 使用这些签名来存储两个方法之间的“内部链接”。 emit valueChanged(5))Qt 在“链接”列表中查找对应的slot 方法。Qt 调用slot 方法,从第一个signal 方法传递参数。彻底阅读article。真是太棒了。
【讨论】:
每次触发信号时,它都会将int 提供给槽函数。这就像如果你(插槽)去见你的邻居给他鸡蛋,然后他想怎么做就怎么做。
你可以看到这个优秀的doc about how Qt Signals and Slots作品
【讨论】: