Problema del constructor del componente Qt
QObject proporciona mecanismos centrales de Qt, como señales y ranuras, múltiples idiomas y recolección de basura de Qt. Es la clase base para todos los objetos en Qt.
QWidget, como su nombre indica, es la clase base de los componentes del formulario, como QDialog, QLabel, etc., todos heredan de él directa o indirectamente. Proporciona algunas señales y espacios específicos para widgets. Naturalmente, QtWidget también hereda de QObject.
Generalmente, cuando usa Qt
Creator para crear una clase, Qt le preguntará cuál es la clase base de la clase, cuál es la información del tipo, etc. Si su clase hereda de QPushButton, QDialog,
QMainWindow, QLabel, entonces use MyLabel(QWidget *parent =
0); explícito. Si su clase hereda de una clase como QString, utilice MyString explícito (QObject*parent = 0);.
Aquí tanto QObject *parent como QWidget *parent se utilizan para especificar afiliaciones de objetos. Por ejemplo,
MiEtiqueta explícita(QWidget *parent = 0);
Esto:
Cuadro de diálogo QDialog;
MiEtiqueta *label = new MyLabel(&dialog);
especifica que la etiqueta existe como elemento secundario del cuadro de diálogo. Cuando se destruye el diálogo, todos sus elementos secundarios se destruirán automáticamente. Entonces, en Qt, siempre que especifiquemos explícita o implícitamente la afiliación del objeto al crear dinámicamente un objeto (como a través de Layout, setCentralWidget, etc.), Qt destruirá automáticamente el objeto cuando se destruya su objeto principal, y allí No es necesario que llames a eliminarte.