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