Qt::WindowStaysOnBottom提示和无框标志使不要将我的Qt窗口保留在所有窗口的底部

Qt::WindowStaysOnBottomHint and frameless flag makes don't keep my Qt window on bottom of all windows

本文关键字:Qt 窗口 保留 我的 底部 提示 WindowStaysOnBottom 标志      更新时间:2023-10-16

我想要一个未装饰的窗口,它将保留在所有窗口的背景中

为此,我将两个窗口标志应用于此Qt窗口:Qt::FramelessWindowHintQt::WindowStaysOnBottomHint

如果我只应用第一个标志,它将取消装饰我的窗户。如果我只应用第二个标志,我将有一个不是未修饰但保留在所有窗口背景中的窗口。

我不明白为什么如果我应用两个标志,我有两种情况:

  1. 如果顺序是:

    view->setWindowFlags(Qt::WindowStaysOnBottomHint);
    view->setWindowFlags(Qt::FramelessWindowHint);
    

    我有一个没有装饰的窗户,但不停留在背景上。

  2. 如果顺序是:

    view->setWindowFlags(Qt::FramelessWindowHint);
    view->setWindowFlags(Qt::WindowStaysOnBottomHint);
    

    我有一个不是无装饰但停留在背景上的窗口。

如何创建一个保留在后台且未经修饰的窗口?

在对Qt一无所知的情况下,我想你可能想要的是:

view->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnBottomHint);

标志通常只是实现为设置了某些位的整数,bitwise or用于设置标志的多个位。