Estaba viendo el ejemplo here, y me preguntaba si no hay pérdidas de memoria. Tengo rojo el artículo hablando de la materia mem leak on delete. Sin embargo, aunque QWidgets conserva la propiedad del widget añadido a, el diseño no.¿El propietario de QBoxLayout se convierte en el propietario de todos los widgets de diseño?
Parece que, a partir del código QT, el elemento primario con el diseño obtiene la propiedad de todos los widgets para este diseño. Sin embargo, no pude ver ninguna referencia de esto en los documentos.
Window::Window()
{
editor = new QTextEdit();
QPushButton *sendButton = new QPushButton(tr("&Send message"));
connect(sendButton, SIGNAL(clicked()), this, SLOT(sendMessage()));
QHBoxLayout *buttonLayout = new QHBoxLayout();
buttonLayout->addStretch();
buttonLayout->addWidget(sendButton);
buttonLayout->addStretch();
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(editor);
layout->addLayout(buttonLayout);
setWindowTitle(tr("Custom Type Sending"));
}
Aunque las clases derivadas no lo mencionan, la clase de diseño base (QLayout) dice que 'addWidget' llama a' addItem' ... y 'addItem' dice: *" ** Nota: ** La propiedad del elemento se transfiere al diseño, y es responsabilidad del diseño eliminarlo. "* http://doc.qt.nokia.com/4.7-snapshot/qlayout.html # addItem – HostileFork
@HostileFork la propiedad del * elemento * se transfiere al diseño. No es la propiedad del widget en sí. Ver mi [respuesta] (http://stackoverflow.com/a/38003370/1951907) que trata de aclarar este punto. – Boris