• 6099阅读
  • 7回复

[提问]QWidget相应delete键 [复制链接]

上一主题 下一主题
离线gtd138
 

只看楼主 倒序阅读 楼主  发表于: 2011-10-11
重载QWidget的keyPressEvent函数,当编辑键delete时,不响应该按键,请问是是啥问题呢?
离线roywillow

只看该作者 1楼 发表于: 2011-10-11
调用父类QWidget::keyPressEvent()应该就能解决了吧
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jdwx

只看该作者 2楼 发表于: 2011-10-11
回 楼主(gtd138) 的帖子
是按下delete键后,没响应你写的代码,还是delete键原有的功能没了?
如果是原有的功能没了,请用楼上的方法。
如果是没响应你的代码,那么把那个函数发上来,分析分析。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线gtd138

只看该作者 3楼 发表于: 2011-10-12
  1. // 键盘按下事件;
  2. void OgreViewer::keyPressEvent(QKeyEvent* evt)
  3. {
  4.     if(!mOgreInit)
  5.         return;
  6.     //int key = evt->key();
  7.     switch(evt->key())
  8.     {
  9.     case Qt::Key_W:
  10.         mDirection.z = -mMove;
  11.         break;
  12.     case Qt::Key_S:
  13.         mDirection.z = mMove;
  14.         break;
  15.     case Qt::Key_A:
  16.         mDirection.x = -mMove;
  17.         break;
  18.     case Qt::Key_D:
  19.         mDirection.x = mMove;
  20.         break;
  21.     case Qt::Key_Delete:
  22.     case Qt::Key_K:
  23.         deleteCurrentEntity();
  24.         break;
  25.     default:
  26.         break;
  27.     }
  28. }


是没有响应我这段代码,OgreViewer是继承与QWeight的。通过单步调试,其他按键都响应了,唯一是delete键没有响应。
离线roywillow

只看该作者 4楼 发表于: 2011-10-12
最好先确认一下你按下delete键后究竟key()的值是多少
就像之前我没分清enter和return的区别的时候发现回车键总是没法相应
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线gtd138

只看该作者 5楼 发表于: 2011-10-12
按下delete键的时候,没有进入这个函数,断点也断不了。。。其他都有。。。
离线jdwx

只看该作者 6楼 发表于: 2011-10-12
回 5楼(gtd138) 的帖子
没发现你说的问题。
我用下面的例子测试的。
附件: key.rar (1 K) 下载次数:1
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线dbzhang800

只看该作者 7楼 发表于: 2011-10-12
要确定有没有问题其实很简单,只需要一个10行以内的小程序即可。

显示一个QLineEdit或其他控件,看看Delete在里面能否工作。如果正常,那么肯定是楼主其他地方弄错了。如果不正常,楼主应该贴出具体的环境信息(系统配置、Qt配置等等),并报告bug
快速回复
限100 字节
 
上一个 下一个