当前位置: 代码迷 >> QT开发 >> 10个信号连一个槽,怎么处理
  详细解决方案

10个信号连一个槽,怎么处理

热度:502   发布时间:2016-04-25 05:14:15.0
10个信号连一个槽,怎么办?
我在一个界面上定义了10个Slider,用QVector<QSlider *>保存Slider的指针。
当每一个Slider的值变化时都发出一个void ValueChanged(int)信号,由窗口的void ValueChanged(int)槽接收。
但问题出来了,当10个中的一个Slider的值变化了,窗口的槽函数怎么知道是哪个Slider发出的信号呢?
请教!

------解决方案--------------------
QObject * QObject::sender () const [protected]
------解决方案--------------------
QObject::Sender()返回发送信号的对象的指针,返回类型为QObject *,可以拿到QSlider *slider 指针。
C/C++ code
QSlider *slider = qobject_cast<QSlider *>(sender());
------解决方案--------------------
楼上正解
------解决方案--------------------
两种思路:
1.sender();
2.signalMap
  相关解决方案