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();
}
}
上記の解決策は機能しますが、setWindowFlags はウィンドウを非表示にするため、再表示する必要があり、もちろんあまりエレガントに見えません。では、その「点滅」の副作用なしに QMainWindow の「常に一番上」に切り替えるにはどうすればよいでしょうか。