void AutoCloseMessageBox::showMessage(QWidget *window, const QString &message) { MainWindow * mainWindow = qobject_cast<MainWindow *>(window); if (mainWindow == NULL) return; QStatusBar * statusBar = mainWindow->realStatusBar(); if (statusBar == NULL) return; AutoCloseMessageBox * acmb = new AutoCloseMessageBox(mainWindow); acmb->setText(message); QRect dest = statusBar->geometry(); // toolbar->geometry(); QRect r = mainWindow->geometry(); acmb->setFixedSize(QSize(dest.width(), dest.height())); QPoint p(dest.x(), dest.y()); p = statusBar->parentWidget()->mapTo(mainWindow, p); acmb->setStartPos(p.x(), r.height()); acmb->setEndPos(p.x(), p.y()); acmb->start(); }