q4:使全屏窗口无法绕过(锁屏)

Qt4: Making fullscreen window impossible to get around (a lock screen)?

本文关键字:锁屏 窗口 q4      更新时间:2023-10-16

我的应用程序是一个操作系统锁屏(像GDM的锁屏或KDE的),所以我试图使它的功能像一个

我试图使我的应用程序的窗口悬停在所有其他窗口和禁用/拦截所有键盘快捷键(ALT-TAB, CTRL-ALT-D等),这会导致它消失。

有什么办法可以做到吗?我百分百确定有,因为锁屏界面与gui的存在,但我只是找不到地方看…

我不知道如何用Qt做到这一点,但你正在寻找的是所谓的抓取。您可以抓取指针输入设备以及键盘。

编辑:查看Qt4文档,您是否尝试使用QWidget::grabMouse?这个函数看起来完全符合您的要求。

我不知道这是否是最好的解决方案,但您可以尝试使用QObject::installEventFilter()的事件处理程序。

如果你使用的是Windows,你可以安装一个事件过滤器来处理event->type() == QEvent::WinEventAct .

我真的不太了解其他操作系统,但Qt可能也有一些东西。

用参数Qt::WindowStaysOnTopHint继承Qwidget类,见下文

myclass::myclass(QWidget *parent) : QWidget(parent,Qt::WindowStaysOnTopHint)