【问题标题】:Does deletelater() also delete the signal and slots associate with the object? [duplicate]deletelater() 是否也会删除与对象关联的信号和槽? [复制]
【发布时间】:2014-12-27 02:27:50
【问题描述】:

一个简单的问题,因为 QT 手册没有具体说明; QT 手册中提到了 De-constructor 做到了,但没有 deletelater()。

当我们在一个对象上调用 deletelater() 时,它是否也会断开所有它的信号和插槽注册?

【问题讨论】:

    标签: c++ qt signals


    【解决方案1】:

    不完全是。 deleteLater() 插槽schedules the object for deletion。换句话说,一旦控制回到事件循环,它就会被删除。

    但是,一旦调用了 QObject 的析构函数,信号和槽就会断开连接。引用析构函数的the documentation

    所有进出对象的信号都会自动断开...

    另请参阅类似的 Stack Overflow 问题:Qt Signals and Slots object disconnect?

    【讨论】:

    • 我明白,但我缺少的是,deletelater() 在删除对象时会调用析构函数吗?
    • @Gilco 是也不是——deleteLater() 只是调用delete。在 C++ 中delete 自动调用析构函数。
    猜你喜欢
    • 2011-06-20
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 2019-12-01
    • 2018-06-30
    • 1970-01-01
    相关资源
    最近更新 更多