1

我正在尝试撤消Stay on Top of Windows我的应用程序上的设置。我认为通过执行一些按位操作,我将能够撤消设置,但它仍然显示在所有其他窗口的顶部。

void showKioskMode(){
    //if(windowFlags()&Qt::WindowStaysOnTopHint){
    if(ui->pushButton_3->text().compare("No Kiosk") == 0){
        //showNormal();
        Qt::WindowFlags flags = windowFlags();
        flags &= ~Qt::WindowStaysOnTopHint;
        setWindowFlags(flags);
        ui->pushButton_3->setText("Yes Kiosk");
    }
    else{
        //showFullScreen();
        Qt::WindowFlags flags = windowFlags();
        setWindowFlags(flags | Qt::WindowStaysOnTopHint);
        ui->pushButton_3->setText("No Kiosk");
    }
    show();
}

我已经检查过 if-body 正在执行,但是即使它们有焦点,该窗口仍然始终位于所有其他窗口的顶部。

4

1 回答 1

0

看起来这是一个错误。可以在以下线程中找到解决方案:

它通过 WinAPI 为 Windows 提供了单独的解决方案。

于 2013-10-01T19:42:29.530 回答