QLabel não é exibido no QWidget
Eu tenho a seguinte hierarquia no meu aplicativo Qt: QMainWindow> QWidget (centralWidget)> QWidget (subclasse)> QLabel
Código de inicialização no meu código QMainWindow:
centralWidget = new QWidget();
centralWidget->setGeometry(0,0,width,height);
chatWidget=new ChatWidget(this); // the subclassed QWidget
setCentralWidget(centralWidget);
Na minha inicialização subclassificada do QWidget (que acontece ao mesmo tempo que a inicialização do Qt App), tenho o seguinte 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
}
Quando o QLabel é adicionado a partir da inicialização da classe, a mensagem é bem exibida no widget.
No entanto, quando inicio o mesmo código depois que um botão é pressionado (através de uma função na mesma subclasse QWidget), o texto não aparece na tela.
Não quero usar layouts, pois preciso posicionar exatamente meus rótulos.
Tentou repintar, mas também não ajudou.
Como posso exibir um rótulo de forma adequada e dinâmica após a inicialização?