首页 > 解决方案 > 特殊键输入不起作用(回车、退格、制表符等)

问题描述

我的按键代码适用于所有键盘字母,但不适用于Enteror之类的键Tab

glfwSetCharCallback(window, character_callback);


void character_callback(GLFWwindow* window, unsigned int codepoint)
{
    char c = codepoint;
    printf("%c", c);
}

该功能甚至在我按下时都没有运行,Tab或者Enter它确实适用于Space栏,我将如何接收所有按键?

标签: c++glfw

解决方案


您应该使用glfwSetKeyCallback, not glfwSetCharCallback,因为您对键而不是字符感兴趣。请参阅键盘输入文档键盘键宏列表

我不确定为什么Tab并且Enter不生成字符:它们通常会分别生成0x090x0d在其他工具包(例如 freeglut 和 Qt)中生成。但显然,这是 GLFW 想要的方式,请参阅他们的问题Backspace 未报告给字符回调

elminredda 于 2017 年 4 月 12 日发表评论 •</p>

对 Enter 和 Backspace 等键使用键回调。它提供新闻、重复和发布事件。


推荐阅读