窃取重点(有充分的理由)

Stealing focus (for a good reason)

本文关键字:理由      更新时间:2023-10-16

我正在研究Yakuake的克隆,如果您使用过它,您会知道它的一个功能是窃取焦点。

基本上,您点击了" Show" Hotkey,该应用程序出现,并且可以在其中写入。您可以使用任何应用程序(被Yakuake隐藏)做任何事情,但是一旦您击中Hotkey,Yakuake就会出现并窃取了焦点。我想对我的应用做同样的事情。

我知道有一些窗口管理器规则可以阻止应用程序这样做,但是Yakuake正在这样做,为什么我不能这样做?

此外,此应用程序旨在与Windows,Linux和Mac兼容,因此没有KDE或GNOME或GNOME或&&&&<insert_your_favourite_window_manager_here> hacks;我不会去检测WM和DO-HACK。

ps:我正在在C 和QT4中进行该应用。

编辑:

只是为了清楚地表明,我不是要求任何代码(但是如果您实际上有一些例子,我会对其进行评估)。我要一种方法。我应该怎么做才能使WM将焦点分配给我的应用。是否有任何标准方法?

Qt::WindowStaysOnTopHint ....

解决方案比我想象的要简单。我做了一个动画,其持续时间为0,在动画结束时,我刚刚做了重点。这做了工作。

如果要使用" show"热键或快捷方式进行操作
QT不提供这样的东西,所以您必须自己做。

您可以查看此帖子:QT背景过程

我不知道其他操作系统。

当您从挂钩中获得正确的键盘事件时,可以创建一个带有" Allwas顶部提示"的窗口,这应该可以。