神秘博客

QT窗口置顶方式

1. 第一种采用Windows.h头文件函数,这个置顶有个问题就是会把活动窗口切换给置顶的窗口

SetWindowPos(HWND(this->winId()), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); //置顶

SetWindowPos(HWND(this->winId()), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); //取消置顶

this是你要置顶的窗口

2. 第二种就是用QT自己的,QT的取消窗口会把窗口放到最底层,如果多层窗口也就是取消了就算你没切换窗口也看到不到窗口了,例如解决视频播放字幕显示,播放窗口非活动状态被别的窗口遮挡就得只取消置顶还得看到字幕,就不易用这种方法

this->setWindowFlags(this->windowFlags() | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::Tool); //置顶 不显示标题栏 不显示任务栏

this->setWindowFlags(this->windowFlags() & ~Qt::WindowStaysOnTopHint);  //取消置顶

this是你要置顶的窗口

3. 第三种就是阻塞所有其他窗口,让窗口置顶,这个不建议使用

this->activateWindow();
版权说明:
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

觉得文章有用就请我吃包辣条吧

微信扫一扫打赏