首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在qt中通过QSignalMapper传递参数

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

Stack Overflow用户
提问于 2013-06-18 21:28:01
回答 1查看 2.7K关注 0票数 3

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

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

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

代码语言:javascript
复制
connect(t->reply, SIGNAL(downloadProgress(qint64,qint64)), signalMapper, SLOT(map()));
signalMapper->setMapping(t->reply, id);

如何解决?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-18 21:48:48

你不需要。来自:http://qt-project.org/doc/qt-5.0/qtcore/qsignalmapper.html

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

因此,QSignalMapper不是为您将参数传输到其他插槽而设计的。如果你想这样做,你需要手动连接所有东西,或者按照这个人所说的那样做:Can QSignalMapper be used to re-emit signals with multiple parameters?,然后针对你的特定情况重新实现QSignalMapper。

如果你使用Qt 5,你也可以这样做:How to keep the source signal's parameters while using QSignalMapper?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17170143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档