繁体   English   中英

阻止Linux应用程序中的所有键盘输入(使用Qt或Mono)

[英]Block All Keyboard Input in a Linux Application (Using Qt or Mono)

我正在使用一个在线测验客户端,我们在其中使用专用的定制linux发行版,该发行版仅包含测验客户端软件以及文本编辑器和其他实用程序软件。 当用户开始测验时,我要防止他/她最小化窗口/将其关闭/切换到桌面或其他窗口。 只能使用鼠标尝试测验,因此我需要在测验期间禁用键盘。 如何使用Qt或Mono做到这一点? 如果需要,我准备使用任何低级库/驱动程序。

您可以使用QWidget :: grabKeyboard和QWidget :: grabMouse,请注意注释中的警告:

警告:鼠标抓取应用程序中的错误经常会锁定终端。 谨慎使用此功能,并在调试时考虑使用-nograb命令行选项。

您是否尝试使用EventFilter? 您有机会阻止与按键相关的所有事件。

此处的更多信息: http : //qt.nokia.com/doc/4.6/eventsandfilters.html

希望能帮助到你 !

就像是 :

bool MyWidget::event(QEvent *event)
{
    if (event->type() == QEvent::KeyPress) 
    {
        return true;
    }
    return QWidget::event(event);
}

您看过XGrabKeyboard吗? 那应该在全球范围内抢占键盘。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM