Wie kann ich für ein QMainWindow in Qt zwischen "Immer im Vordergrund" umschalten, ohne ein Flackern oder einen Blitz auszulösen?

void MainWindow::on_actionAlways_on_Top_triggered(bool checked)
{
    Qt::WindowFlags flags = this->windowFlags();
    if (checked)
    {
        this->setWindowFlags(flags | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint);
        this->show();
    }
    else
    {
        this->setWindowFlags(flags ^ (Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint));
        this->show();
    }
}

Die obige Lösung funktioniert, aber da setWindowFlags das Fenster verbirgt, muss es erneut angezeigt werden und das sieht natürlich nicht sehr elegant aus. Wie kann ich für ein QMainWindow "immer im Vordergrund" umschalten, ohne dass der Nebeneffekt "blinkt"?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage