QLabel no se muestra en QWidget

Tengo la siguiente jerarquía en mi aplicación Qt: QMainWindow> QWidget (centralWidget)> QWidget (subclassed)> QLabel

Código de inicialización en mi código QMainWindow:

centralWidget = new QWidget();
centralWidget->setGeometry(0,0,width,height);
chatWidget=new ChatWidget(this); // the subclassed QWidget
setCentralWidget(centralWidget);

En mi inicialización de QWidget subclasificada (que ocurre al mismo tiempo que la inicialización de la aplicación Qt) tengo el siguiente código:

ChatWidget::ChatWidget(QWidget *parent):QWidget(parent)
{
    QLabel  *lbl;
    lbl=new QLabel(this);
    lbl->setText("Hello World 1"); <-- Is properly Display
}

void ChatWidget::displayChatAfterButtonPressed()
{
    QLabel *lbl;
    lbl=new QLabel(this);
    lbl->setText("Hello World 2"); <-- Does NOT appear
}

Cuando se agrega QLabel desde la inicialización de la clase, el mensaje se muestra bien en el widget.

Sin embargo, cuando inicio el mismo código después de presionar un botón (a través de una función en la misma subclase de QWidget), el texto no aparece en la pantalla.

No quiero usar diseños, ya que necesito posicionar exactamente mis etiquetas.

Intenté volver a pintar, pero tampoco ayudó.

¿Cómo puedo mostrar una etiqueta de manera adecuada y dinámica después de que se complete la inicialización?

Respuestas a la pregunta(2)

Su respuesta a la pregunta