首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

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

2012-01-23 
10个信号连一个槽,怎么办?我在一个界面上定义了10个Slider,用QVectorQSlider *保存Slider的指针。当每一

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

热点排行