如何在qt中通过QSignalMapper传递参数

如何在qt中通过QSignalMapper传递参数,qt,Qt,我想用Qt做一个下载器。 我在使用QSignalMapper时遇到了一个问题 QNetworkReply、downloadProgress(qint64、qint64)中有信号 我有很多下载任务,所以我使用QSignalMapper来处理信号。 但是我如何将(qint64,qint64)传递给我自己的函数呢 我将id传递到我的插槽,但我丢失了(qint64,qint64) 怎么解决呢?你不知道。发件人: 此类收集一组无参数信号,并使用与发送信号的对象相对应的整数、字符串或小部件参数重新发送这些信

我想用Qt做一个下载器。 我在使用QSignalMapper时遇到了一个问题

QNetworkReply、downloadProgress(qint64、qint64)中有信号 我有很多下载任务,所以我使用QSignalMapper来处理信号。 但是我如何将(qint64,qint64)传递给我自己的函数呢

我将id传递到我的插槽,但我丢失了(qint64,qint64)

怎么解决呢?

你不知道。发件人:

此类收集一组无参数信号,并使用与发送信号的对象相对应的整数、字符串或小部件参数重新发送这些信号

因此,QSignalMapper不能为您将参数传输到其他插槽中。如果你想做到这一点,你需要手动连接所有东西,或者按照这个家伙所描述的做:并为你的具体案例重新实现QSignalMapper

如果使用Qt 5,也可以执行以下操作:

connect(t->reply, SIGNAL(downloadProgress(qint64,qint64)), signalMapper, SLOT(map()));
signalMapper->setMapping(t->reply, id);