首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Qt窗口标志设置为Qt::WindowStaysOnTopHint,但不起作用

Qt窗口标志设置为Qt::WindowStaysOnTopHint,但不起作用
EN

Stack Overflow用户
提问于 2019-05-16 22:22:00
回答 1查看 1.5K关注 0票数 0

我已经创建了一个'flash‘窗口来显示应用程序启动期间的图像。图像被显示,在我的派生QMainWindow构造函数中,我设置了标志:

代码语言:javascript
运行
复制
setWindowFlags(Qt::CustomizeWindowHint
             | Qt::FramelessWindowHint                   
             | Qt::WindowStaysOnTopHint);

但是,当创建另一个窗口时,我可以将这个新窗口拖到启动窗口的前面,这是我不想要的。我希望拖动的窗口一直在启动窗口的后面,直到它被移除。

我在网上搜索,我设置的内容应该可以工作,但它不起作用。我正在使用基于Qt 5.12.2的Qt Creator 4.9.0

我的系统是iMAC (Retina 5K,27英寸,2015年末)。

编辑我使用下面的代码来测试和证明我的错误,我的应用程序窗口需要是模式的,但我希望启动窗口总是在顶部。

代码语言:javascript
运行
复制
    #include <QMainWindow>
    #include <QApplication>

    int main(int argc, char ** argv)
    {
       QApplication app(argc, argv);

       QMainWindow * mw = new QMainWindow();
       mw->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
       mw->resize(500, 500);
       mw->show();

       QMainWindow * secondWindow = new QMainWindow();
       secondWindow->setWindowModality(Qt::ApplicationModal); // <- This breaks the always on top flag
       secondWindow->resize(500, 500);
       secondWindow->show();
       return app.exec();
    }

我已经尝试将两个窗口都设置为模式,但也无济于事。

EN

回答 1

Stack Overflow用户

发布于 2019-05-16 22:31:55

下面的程序对我有效;对你有效吗?(在我的Mac上,运行这个程序会打开一个灰色的空白窗口,它总是在所有其他窗口的前面)

代码语言:javascript
运行
复制
#include <QMainWindow>
#include <QApplication>

int main(int argc, char ** argv)
{
   QApplication app(argc, argv);

   QMainWindow * mw = new QMainWindow;
   mw->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
   mw->resize(500, 500);
   mw->show();

   QMainWindow * secondWindow = new QMainWindow;
   secondWindow->resize(500, 500);
   secondWindow->show();
   return app.exec();
}

如果这个程序对你有效,那么你需要找出你自己的程序与这个程序的不同之处;如果这个程序显示出你在你自己的程序中看到的同样的错误行为,那么它可能是你正在使用的Qt版本中有一个bug。(我正在运行OS/X 10.14.4,FWIW的2018 Mac mini上使用Qt 5.12.2进行测试)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56170786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档