如何处理QT中动态添加的QObject的SIGNAL(带参数)
How to deal with the SIGNAL(with arguments) of dynamically added QObject in QT?
我发现QSignalMapper
可以处理带有NO参数的SIGNAL
,但我如何处理带有它的参数的一些SIGNAL
。
实际的问题是,我已经动态地创建了一些QProgressBar
,并且我想使用QNetworkReply
的downloadProgress(qint64, qint64)
来更新条,然后问题出现了。
问题是QNetworkReply's 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++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 函数调用中参数的顺序重要吗
- 为什么 QObject::d isconnect(const QMetaObject::Connection &connection) 采用 const 参数并打算修改它?
- QObject::connect 有太多的参数
- 无法将参数 3 从 'const QGraphicsItem *' 转换为 'const QObject *',这是指针,对象是 QGraphicsObject 的子类
- 当通过引用传递 QObject 时,C++信号的参数在 QML 中显示为"未定义"
- 将QMETAMETHOD作为参数传递到使用新的Qobject :: Connect语法的函数
- 在传递的对象即将被销毁之前,发出将QObject指针作为参数传递的信号是否安全
- 如何处理QT中动态添加的QObject的SIGNAL(带参数)
- 带有枚举参数的QObject::connect()
- QObject::connect 中 Func2 类型的参数
- QObject::connect:无法对类型 'int&' 的参数进行排队
- Qt,无法将不完整类型'A *'的参数转换为'const QObject *'
- C2665:'QObject::connect':3 个重载都无法转换所有参数类型