查看: 1386|回复: 2

QT与OSG结合后遇到的问题

[复制链接]

该用户从未签到

发表于 2010-12-28 14:17:32 | 显示全部楼层 |阅读模式
将QT与OSG结合后,我进行场景漫游需要进行键盘相应事件的处理,运行时只能得到按键a~z(包括大写)的键值,其他功能键如:up,down,right,left等按下都不能获得其键值。在程序中,将下面的语句注释掉即可获得功能键键值,但是osg显示的窗口就不能嵌入QT的窗口中,请问什么原因,该怎么解决?谢谢!
注释掉的语句:
  1. _viewer.getCamera()->setGraphicsContext(_gw.get());
复制代码

该用户从未签到

发表于 2010-12-28 16:03:28 | 显示全部楼层
void AdapterWidget::keyPressEvent( QKeyEvent* event )
{
        if(event->type() == QEvent::KeyPress)
        {
                if(event->key() == Qt::Key_Up)
                        _gw->getEventQueue()->keyPress(osgGA::GUIEventAdapter::KEY_Up);
                if(event->key() == Qt::Key_Down)
                        _gw->getEventQueue()->keyPress(osgGA::GUIEventAdapter::KEY_Down);//用哪个键  发送哪个键的 消息  就OK
        }

        _gw->getEventQueue()->keyPress( (osgGA::GUIEventAdapter::KeySymbol) *(event->text().toAscii().data() ) );
}

该用户从未签到

 楼主| 发表于 2010-12-29 10:08:10 | 显示全部楼层
问题解决了,谢谢大师指点!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表