gpt4 book ai didi

c++ - Qt 4.6 和 OpenGL : how to capture keyboard presses with three different widgets at once?

转载 作者:行者123 更新时间:2023-11-30 03:09:16 25 4
gpt4 key购买 nike

我在 Qt Creator 中创建了一个表单,并在表单中添加了三个自定义 QWidgets(都是同一个类,称为 Renderer)。当用户按下 Alt 键时,我希望除表单之外的所有三个小部件都能收到通知,但目前我什至无法让一个小部件工作。

我在 Renderer 类中添加了 void keyPressEvent(QKeyEvent *) 和 void keyReleaseEvent(QKeyEvent *),但是根本没有调用这些函数...(没有触发断点)按键功能受到保护。

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;
}
}

我是不是漏掉了什么?

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

非常感谢。

最佳答案

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

关于c++ - Qt 4.6 和 OpenGL : how to capture keyboard presses with three different widgets at once?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4241262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com