写了一个键盘响应,按下所有字母键盘,获取的按键key值都是229(0xE5)。
class UseEventHandler :public osgGA::GUIEventHandler
{
public:
UseEventHandler(){}
virtual bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa)
{
osgViewer::Viewer* viewer = dynamic_cast<osgViewer::Viewer*>(&aa);
if (!viewer)return false;
switch (ea.getEventType())
{
case(osgGA::GUIEventAdapter::KEYDOWN):
{
if (ea.getKey()==107 || ea.getKey()==229)
{
qDebug()<<"hello:"<<ea.getKey();
return false;
}
}
}
}
翻看定义,只有一个符合,明显不对。
osgGA/GUIEventAdapter
class OSGGA_EXPORT GUIEventAdapter : public Event
{
enum KeySymbol
{
KEY_Caps_Lock = 0xFFE5, /* Caps lock */