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

时间:2010-03-10 11:52:13

标签: linux qt mono key

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

3 个答案:

答案 0 :(得分:3)

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

  

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

答案 1 :(得分:1)

您是否尝试使用EventFilter?你有机会阻止所有与keypress相关的事件......

此处提供更多信息: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);
}

答案 2 :(得分:1)

你看过XGrabKeyboard了吗?这应该是键盘的全局抓取。