gpt4 book ai didi

qt - qt中QSignalMapper如何传递参数

转载 作者:行者123 更新时间:2023-12-02 02:01:12 25 4
gpt4 key购买 nike

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

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

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

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

如何解决?

最佳答案

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

This class collects a set of parameterless signals, and re-emits them with integer, string or widget parameters corresponding to the object that sent the signal.

因此,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?

关于qt - qt中QSignalMapper如何传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17170143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com