2017-12-07 10 views
0

, 나는qt 키 프레스 이벤트를 osg 이벤트로 변환하는 방법은 무엇입니까? 내 OSG의 이벤트 핸들러에서

if(ea.getModKeyMask() & osgGA::GUIEventAdapter::MODKEY_SHIFT){ 
    do something 
} 

개는 osgGA::GUIEventAdapter있는 다음과 같은 코드가 있습니다. osgwidget에서 키를 누를 때 이벤트는 내 코드를 실행하면, osgGA :: GUIEventAdapter 시프트 키를 눌러 이벤트를 캡처 할 수 없습니다 보인다

그러나
void OSGWidget::keyPressEvent(QKeyEvent *event) 
{ 
QString keyString = event->text(); 
const char *keyData = keyString.toLocal8Bit().data(); 
this->getEventQueue()->keyPress(osgGA::GUIEventAdapter::KeySymbol(*keyData)); 
} 

에 의해 처리됩니다. 작동 시키려면 어떻게해야합니까?

답변

1

"SHIFT"키는 수식 키입니다.

event->text() 그리고 Shift 키를 누를 때 event->text()이 빈 문자열을 반환합니다.

아래 ... 방법은 Shift 키를 처리하는 것을 시도하십시오

if (event->modifiers() == Qt::ShiftModifier) 
{ 
    //SET SHIFT KEY TO OPENSCENEGRAPH 
}