清除Qt中的标记/提示

时间:2013-09-30 19:02:54

标签: c++ windows qt windows-7 qt5

我正在尝试撤消我的应用上的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正在执行,但是窗口仍然总是在所有其他窗口的顶部,即使它们有焦点。

1 个答案:

答案 0 :(得分:0)

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

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