我的应用程序是一个操作系统锁屏(如 GDM 的锁屏或 KDE 的),所以我试图让它像一个一样运行。
我试图让我的应用程序的窗口悬停在所有其他窗口之上,并禁用/拦截所有可能导致它消失的键盘快捷键(、、等)ALT-TAB
。CTRL-ALT-D
有没有办法做到这一点?我 100% 确定有,因为存在带有 GUI 的锁屏,但我就是找不到可以看的地方……
我的应用程序是一个操作系统锁屏(如 GDM 的锁屏或 KDE 的),所以我试图让它像一个一样运行。
我试图让我的应用程序的窗口悬停在所有其他窗口之上,并禁用/拦截所有可能导致它消失的键盘快捷键(、、等)ALT-TAB
。CTRL-ALT-D
有没有办法做到这一点?我 100% 确定有,因为存在带有 GUI 的锁屏,但我就是找不到可以看的地方……
我不知道如何用 Qt 做到这一点,但你正在寻找的是所谓的grabbing。您可以抓住指针输入设备以及键盘。
编辑:查看 Qt4 文档,您是否尝试过使用QWidget::grabMouse?看起来这个函数正是你想要的。
我不知道这是否是最好的解决方案,但您可以尝试使用QObject::installEventFilter()
.
如果您使用的是 Windows,则可以在event->type() == QEvent::WinEventAct
.
我对其他操作系统不太了解,但 Qt 可能也有这方面的东西。
用参数继承Qwidget
类Qt::WindowStaysOnTopHint
见下文
myclass::myclass(QWidget *parent) : QWidget(parent,Qt::WindowStaysOnTopHint)