Предполагая, что код, который вы показываете, находится в конструкторе вашего главного окна, проблема может быть связана с тем, что события не обрабатываются должным образом, поскольку цикл событий еще не запущен во время создания главного окна.
Попробуйте выполнить showMessage
в слоте с отложенной инициализацией, например,
QLabel *label = new QLabel;
ui.statusBar->addWidget(label);
label->setText("hello world");
QTimer::singleShot ( 0, this, SLOT(delayedInit() );
void MainWindow::delayedInit()
{
ui.statusbar->showMessage("Temp message", 3000); // ui is the Ui::AutoGenHeaderForForm
}