gpt4 book ai didi

c++ - QT中动态添加QObject的SIGNAL(带参数)如何处理?

转载 作者:行者123 更新时间:2023-11-28 08:09:37 25 4
gpt4 key购买 nike

我发现 QSignalMapper 可以处理 SIGNALNO Arguments,但是我如何处理一些 SIGNAL 及其参数。

实际问题是,我动态创建了一些QProgressBar,我想使用QNetworkReplydownloadProgress(qint64, qint64)更新吧,然后问题就出现了。

最佳答案

问题是 QNetworkReply 的 downloadProgress(qint64, qint64)QProgressBar 的插槽在任何方面都不兼容。在这种情况下,信号映射器不会帮助您,太具体了。

您必须创建自己的适配器类:

class Adapter: public QObject
{
Q_OBJECT
public:
explicit Adapter(QProgressBar* bar, const QNetworkReply* reply):QObject(bar)
{
connect(reply, SIGNAL(downloadProgress(qint64,qint64)), SLOT(changeProgress(qint64,qint64)));
}

private slots:
void changeProgress(qint64 progress, qint64 total)
{
QProgressBar* bar = static_cast<QProgressBar*>(parent());
bar->setMaximum(total);
bar->setValue(progress);
}

};

关于c++ - QT中动态添加QObject的SIGNAL(带参数)如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9452223/

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