@ eyllanesc предложение может работать, но оно не должно быть предпочтительным подходом.У Qt есть своя собственная модель памяти, и ее использование должно быть предпочтительным.Таким образом, «QLineEdit m_lineEdit» следует изменить, например, на «QLineEdit * m_lineEdit», и в конструкторе вы должны инициализировать его следующим образом:
// Instance of the QLineEdit will be owned by the ManualWidget which is part of Qt memory management now.
m_lineEdit = new QLineEdit(this);
Затем следующая строка:
layout->addWidget(lineEdit);
Может быть изменено на:
layout->addWidget(m_lineEdit);
Почему плохо использовать «QLineEdit m_lineEdit»?Поскольку Qt может захотеть уничтожить этот объект по какой-то причине (вы все равно можете вызвать m_lineEdit.deleteLater ()), и вы можете оказаться в ситуации «двойного уничтожения», которая приведет к сбою приложения.Вы можете сказать, что таким образом конфликтующие модели памяти будут взаимодействовать.