这是我的示例qt connect语句
connect(pHttpFetch, SIGNAL(Fetched(QByteArray)), this, SLOT(PrintData(QByteArray)));
这里第一个对象的信号连接到调用(它产生连接调用)对象的槽。
我有以下事项
由于我不需要第一个对象,可以将它作为本地对象吗? (我假设Qt神奇地将对象保留在内存中)
我应该创建一个共享指针来保存对象。在不需要时会破坏物体吗?
答案 0 :(得分:3)
根据Qt documentation
自动断开与对象之间的所有信号,并从事件队列中删除对象的所有待处理发布事件。
不,Qt并没有“神奇地”将对象保留在内存中。
不再存在的对象无法发送信号。您应该为此对象分配内存并保留对它的引用。请记住,如果您将QObject
作为父母,那么此父母将自动处理其子女的删除(但如果您不提供父母,则必须手动删除它或使用{{3 } QObject
的广告位