Удаляет ли deletelater () сигнал и слоты, связанные с объектом? [Дубликат]

0

простой вопрос, поскольку руководство QT конкретно не оговаривает его; в руководстве QT упоминается де-конструктор, но не deleteelater().

Когда мы вызываем deleteelater() на объект, отключает ли он все его сигналы и регистрацию слотов?

Теги:
qt
signals

1 ответ

1

Не совсем. В слоте deleteLater() назначается объект для удаления. Другими словами, он будет удален после того, как управление вернется в цикл событий.

Однако сигналы и слоты отключены после вызова деструктора QObject. Чтобы привести деструктор в документацию:

Все сигналы от объекта и от него автоматически отключены...

См. Также этот аналогичный вопрос о переполнении стека: отключить объект Qt Signals и Slots?

  • 0
    Я понимаю, но то, что мне не хватает, вызывает deletelater () деструктор, когда он удаляет объект?
  • 0
    @Gilco Да и нет - deleteLater() просто вызывает delete . В C ++ delete автоматически вызывает деструктор.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню