Size: a a a

2020 June 03

SE

Suigintou45 E14 in Qt
setter и setter2 не видно где удаляются
источник

KT

Kathy Ti in Qt
Suigintou45 E14
setter и setter2 не видно где удаляются
а они разве не удаляются автоматически?
источник

SE

Suigintou45 E14 in Qt
удалятся автоматически, если их размещать на стеке как локальные переменные (QSettings setter;) или передавать им parent в конструкторе в new (но он не везде есть) - тогда удалятся с этим парентом. в других случаях - утечка
источник

KT

Kathy Ti in Qt
Suigintou45 E14
удалятся автоматически, если их размещать на стеке как локальные переменные (QSettings setter;) или передавать им parent в конструкторе в new (но он не везде есть) - тогда удалятся с этим парентом. в других случаях - утечка
а вот в хедере объявлять - не вариант, да?
источник

AN

Alexander N in Qt
Хмм а я вот зачем-то думал манагер написать, который будет владеть всеми виджетами)
источник

SE

Suigintou45 E14 in Qt
Alexander N
Хмм а я вот зачем-то думал манагер написать, который будет владеть всеми виджетами)
QCoreApplication? )
источник

E

Evilenzo in Qt
Suigintou45 E14
удалятся автоматически, если их размещать на стеке как локальные переменные (QSettings setter;) или передавать им parent в конструкторе в new (но он не везде есть) - тогда удалятся с этим парентом. в других случаях - утечка
А если через setParent?
источник

AN

Alexander N in Qt
Suigintou45 E14
QCoreApplication? )
Но ведь он не владеет?
источник

SE

Suigintou45 E14 in Qt
Kathy Ti
а вот в хедере объявлять - не вариант, да?
ну там можно объявить внутри класса главного окна как QScopedPointer<QSettings,QScopedPointerDeleteLater> setter; тогда оно удалится при удалении этого окна
источник

SE

Suigintou45 E14 in Qt
автоматически
источник

AN

Alexander N in Qt
Можно хранить например в std::unordered_map<QString, std::unique_ptr<QWidget>>
источник

AN

Alexander N in Qt
Правда тогда кастить обратно придётся
источник

AN

Alexander N in Qt
Это  так мысли вслух, хз насколько это валидно
источник

SE

Suigintou45 E14 in Qt
Evilenzo
А если через setParent?
если конструктора с парентом нет, то и этого метода нет, и deleteLater. и объект не потомок QObject
источник

AN

Alexander N in Qt
Я не понял как вообще deleteLater удаляет, точнее когда
источник

SE

Suigintou45 E14 in Qt
Alexander N
Я не понял как вообще deleteLater удаляет, точнее когда
это магия)
источник

KT

Kathy Ti in Qt
Suigintou45 E14
и QNAM удалять не надо, пускай всё время живёт вместе с главным окном
🙏спасибо
источник

E

Evilenzo in Qt
Suigintou45 E14
если конструктора с парентом нет, то и этого метода нет, и deleteLater. и объект не потомок QObject
Я вас просто не так понял. Имелось в виду, обязательно ли указывать parent в конструкторе.
источник

DT

Dmitry Tereshchenko in Qt
и в 67-ой строке условие поправь
я так понял, там проверка должна быть на j == 3
источник

SE

Suigintou45 E14 in Qt
Evilenzo
Я вас просто не так понял. Имелось в виду, обязательно ли указывать parent в конструкторе.
указывать, если хочется воспользоваться автоматическим удалением без смартпойнтеров.
источник