首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt4.6和OpenGL:如何同时捕获三个不同部件的键盘按键?

Qt4.6和OpenGL:如何同时捕获三个不同部件的键盘按键?
EN

Stack Overflow用户
提问于 2010-11-22 08:20:44
回答 1查看 3K关注 0票数 2

我在Qt Creator中创建了一个表单,并在表单中添加了三个自定义渲染器(它们都是同一个QWidgets类)。我希望当用户按下Alt键时,表单之外的所有三个小部件都能得到通知,但目前我甚至不能让一个小部件工作。

我将void keyPressEvent(QKeyEvent *)和void keyReleaseEvent(QKeyEvent *)添加到渲染器类中,但根本没有调用这些函数……(未触发断点)按键功能受到保护。

代码语言:javascript
复制
void Renderer::keyPressEvent(QKeyEvent *event) {
    switch(event->key()) {
    case Qt::Key_Alt: {
        isAltPressed = true;
        cout << "alt got pressed" << endl;
        break;
    }
    default:
        break;
    }
}

void Renderer::keyReleaseEvent(QKeyEvent *event) {
    switch(event->key()) {
    case Qt::Key_Alt: {
        isAltPressed = false;
        cout << "alt released" << endl;
        break;
    }
    default:
        break;
    }
}

我是不是漏掉了什么?

另外,为了让所有三个小部件同时注册键盘按键,我需要做什么特殊的事情吗?

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-22 08:26:47

你的focusPolicy是多少?键盘事件将只转到具有焦点的小部件(然后您可以自己调用其他处理程序)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4241262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档