我在一个界面上定义了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